home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / nethack.lha / nethack-3.1 / src / monst.c < prev    next >
C/C++ Source or Header  |  1993-01-25  |  121KB  |  2,554 lines

  1. /*    SCCS Id: @(#)monst.c    3.1    92/11/25          */
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #include "config.h"
  6. #include "permonst.h"
  7. #include "monsym.h"
  8. #include "eshk.h"
  9. #include "vault.h"
  10. #include "epri.h"
  11.  
  12. #ifdef MUSE
  13. #define MARM(x,y) x /* x is usually 10 */
  14. #else
  15. #define MARM(x,y) y
  16. #endif
  17.  
  18. #define NO_ATTK     { 0, 0, 0, 0 }
  19.  
  20. #define WT_ELF        800
  21. #define WT_DRAGON    4500
  22.  
  23. #ifdef C
  24. #undef C
  25. #endif
  26. #ifdef TEXTCOLOR
  27. #include "color.h"
  28. #define C(color)    color
  29. #define HI_DOMESTIC    WHITE        /* use for player + friendlies */
  30. #define HI_LORD     MAGENTA
  31. #else
  32. #define C(color)
  33. #endif
  34.  
  35. void NDECL(monst_init);
  36. /*
  37.  *    Entry Format:        (from permonst.h)
  38.  *
  39.  *    name, symbol (S_* defines),
  40.  *    difficulty level, move rate, armor class, magic resistance,
  41.  *    alignment, creation/geno flags (G_* defines),
  42.  *    6 * attack structs ( type , damage-type, # dice, # sides ),
  43.  *    weight (WT_* defines), nutritional value, extension length,
  44.  *    sounds made (MS_* defines), physical size (MZ_* defines),
  45.  *    resistances, resistances conferred (both MR_* defines),
  46.  *    3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
  47.  *    symbol color (C(x) macro)
  48.  */
  49.  
  50. #ifndef SPLITMON_2
  51. struct permonst NEARDATA playermon = {        /* used by weapons bonus code */
  52.     "player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN,
  53.     { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  54.       NO_ATTK, NO_ATTK, NO_ATTK },
  55.     WT_HUMAN, 400, PL_NSIZ, MS_HUMANOID, MZ_HUMAN, 0, 0,
  56.     M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  57.     M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC)
  58. },    NEARDATA *uasmon = &playermon;
  59. #endif /* SPLITMON_2 */
  60.  
  61. /*
  62.  *    Rule #1:    monsters of a given class are contiguous in the
  63.  *            mons[] array.
  64.  *
  65.  *    Rule #2:    monsters of a given class are presented in ascending
  66.  *            order of strength.
  67.  *
  68.  *    Rule #3:    monster frequency is included in the geno mask;
  69.  *            the frequency can be from 0 to 7.  0's will also
  70.  *            be skipped during generation.
  71.  *
  72.  *    Rule #4:    monster subclasses (e.g. giants) should be kept
  73.  *            together, unless it violates Rule 2.  NOGEN monsters
  74.  *            won't violate Rule 2.
  75.  *
  76.  * Guidelines for color assignment:
  77.  *
  78.  *    * Use the same color for all `growth stages' of a monster (ex.
  79.  *      little dog/big dog, baby naga/full-grown naga.
  80.  *
  81.  *    * Use colors given in names wherever possible. If the class has `real'
  82.  *      members with strong color associations, use those.
  83.  *
  84.  *    * Favor `cool' colors for cold-resistent monsters, `warm' ones for
  85.  *      fire-resistent ones.
  86.  *
  87.  *    * Try to reserve purple (magenta) for powerful `ruler' monsters (queen
  88.  *      bee, kobold lord, &c.).
  89.  *
  90.  *    * Subject to all these constraints, try to use color to make as many
  91.  *      distinctions as the / command (that is, within a monster letter
  92.  *      distinct names should map to distinct colors).
  93.  *
  94.  * The aim in assigning colors is to be consistent enough so a player can
  95.  * become `intuitive' about them, deducing some or all of these rules
  96.  * unconsciously. Use your common sense.
  97.  */
  98.  
  99. #ifndef SPLITMON_2
  100. struct permonst NEARDATA mons[] = {
  101. /*    ants    */
  102.     { "giant ant",    S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3),
  103.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  104.         NO_ATTK, NO_ATTK, NO_ATTK },
  105.       10, 10, 0, MS_SILENT, MZ_TINY, 0, 0,
  106.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  107.       M2_HOSTILE, 0, C(BROWN) },
  108.     { "killer bee", S_ANT, 1, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
  109.       { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK,
  110.         NO_ATTK, NO_ATTK, NO_ATTK },
  111.       1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
  112.       M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS, M2_HOSTILE | M2_FEMALE,
  113.       0, C(YELLOW) },
  114.     { "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  115.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 },
  116.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  117.       20, 5, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
  118.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  119.       M2_HOSTILE, 0, C(BLUE) },
  120.     { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
  121.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BITE, AD_FIRE, 2, 4 },
  122.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  123.       30, 10, 0, MS_SILENT, MZ_TINY, MR_FIRE, MR_FIRE,
  124.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  125.       M2_HOSTILE, 0, C(RED) },
  126.     { "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3),
  127.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
  128.         NO_ATTK, NO_ATTK, NO_ATTK },
  129.       10, 10, 0, MS_SILENT, MZ_LARGE, MR_POISON, MR_POISON,
  130.       M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE,
  131.       M2_HOSTILE, 0, C(BLACK) },
  132.     { "queen bee", S_ANT, 9, 24, -4, 0, 0, (G_GENO | G_NOGEN),
  133.       { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK,
  134.         NO_ATTK, NO_ATTK, NO_ATTK },
  135.       1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
  136.       M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS,
  137.       M2_HOSTILE | M2_FEMALE | M2_PRINCE, 0, C(HI_LORD) },
  138. /*    blobs    */
  139.     { "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2),
  140.       { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK,
  141.         NO_ATTK, NO_ATTK, NO_ATTK },
  142.       30, 10, 0, MS_SILENT, MZ_TINY,
  143.       MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_SLEEP | MR_STONE,
  144.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  145.       M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER, 0, C(GREEN) },
  146.     { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
  147.       { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  148.         NO_ATTK, NO_ATTK, NO_ATTK },
  149.       200, 100, 0, MS_SILENT, MZ_SMALL,
  150.       MR_SLEEP | MR_POISON, MR_POISON,
  151.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  152.       M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, C(WHITE) },
  153.     { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
  154.       { { AT_TUCH, AD_PLYS, 2, 4 }, { AT_NONE, AD_PLYS, 1, 4 },
  155.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  156.       600, 150, 0, MS_SILENT, MZ_LARGE,
  157.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_ACID |
  158.       MR_STONE, MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP,
  159.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
  160.       M1_ACID, M2_WANDER | M2_HOSTILE | M2_NEUTER,
  161.       0, C(CYAN) },
  162. /*    cockatrice    */
  163.     { "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5),
  164.       { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 },
  165.         { AT_NONE, AD_STON, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  166.       30, 30, 0, MS_HISS, MZ_SMALL,
  167.       MR_POISON | MR_STONE, MR_POISON | MR_STONE,
  168.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS, M2_HOSTILE, 0, C(YELLOW) },
  169. /*    dogs and other canines    */
  170.     { "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3),
  171.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  172.         NO_ATTK, NO_ATTK, NO_ATTK },
  173.       300, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
  174.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  175.     { "werejackal", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
  176.       { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
  177.         NO_ATTK, NO_ATTK, NO_ATTK },
  178.       300, 250, 0, MS_BARK, MZ_SMALL, MR_POISON, 0,
  179.       M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  180.       M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
  181.     { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
  182.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  183.         NO_ATTK, NO_ATTK, NO_ATTK },
  184.       150, 150, 0, MS_BARK, MZ_SMALL, 0, 0,
  185.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  186.       M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  187.     { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
  188.       { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK,
  189.         NO_ATTK, NO_ATTK, NO_ATTK },
  190.       400, 200, 0, MS_BARK, MZ_MEDIUM, 0, 0,
  191.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  192.       M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  193.     { "large dog", S_DOG, 6, 15, 4, 0, 0, (G_GENO | 1),
  194.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  195.         NO_ATTK, NO_ATTK, NO_ATTK },
  196.       800, 250, 0, MS_BARK, MZ_MEDIUM, 0, 0,
  197.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_STRONG | M2_DOMESTIC,
  198.       0, C(HI_DOMESTIC) },
  199.     { "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2),
  200.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  201.         NO_ATTK, NO_ATTK, NO_ATTK },
  202.       500, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
  203.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  204.     { "werewolf", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
  205.       { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK,
  206.         NO_ATTK, NO_ATTK, NO_ATTK },
  207.       500, 250, 0, MS_BARK, MZ_MEDIUM, MR_POISON, 0,
  208.       M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  209.       M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
  210.     { "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2),
  211.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  212.         NO_ATTK, NO_ATTK, NO_ATTK },
  213.       850, 350, 0, MS_BARK, MZ_MEDIUM, 0, 0,
  214.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  215.       M2_HOSTILE, 0, C(BROWN) },
  216.     { "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1),
  217.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 },
  218.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  219.       700, 300, 0, MS_BARK, MZ_LARGE, MR_COLD, MR_COLD,
  220.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  221.       M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
  222.     { "hell hound pup", S_DOG, 7, 12, 4, 20, -5,
  223.       (G_HELL | G_GENO | G_SGROUP | 1),
  224.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 },
  225.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  226.       200, 200, 0, MS_BARK, MZ_SMALL,
  227.       MR_FIRE, MR_FIRE, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  228.       M2_HOSTILE, 0, C(RED) },
  229.     { "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1),
  230.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 },
  231.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  232.       600, 300, 0, MS_BARK, MZ_MEDIUM,
  233.       MR_FIRE, MR_FIRE, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  234.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  235. #ifdef CHARON
  236.     { "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1),
  237.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 },
  238.         { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  239.       1000, 350, 0, MS_BARK, MZ_LARGE, MR_FIRE, MR_FIRE,
  240.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  241.       M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_MALE, 0,
  242.       C(RED) },
  243. #endif
  244. /*    eyes    */
  245.     { "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5),
  246.       { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK,
  247.         NO_ATTK, NO_ATTK, NO_ATTK },
  248.       10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
  249.       M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD,
  250.       M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
  251.     { "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2),
  252.       { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK,
  253.         NO_ATTK, NO_ATTK, NO_ATTK },
  254.       10, 10, 0, MS_SILENT, MZ_SMALL, MR_COLD, MR_COLD,
  255.       M1_FLY | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  256.       M2_HOSTILE | M2_NEUTER, 0, C(WHITE) },
  257. /*    felines     */
  258.     { "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1),
  259.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  260.         NO_ATTK, NO_ATTK, NO_ATTK },
  261.       150, 150, 0, MS_MEW, MZ_SMALL, 0, 0,
  262.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  263.       M2_WANDER | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  264.     { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
  265.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  266.         NO_ATTK, NO_ATTK, NO_ATTK },
  267.       200, 200, 0, MS_MEW, MZ_SMALL, 0, 0,
  268.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  269.       M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  270.     { "jaguar", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
  271.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  272.         { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  273.       600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
  274.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  275.       M2_HOSTILE, 0, C(BROWN) },
  276.     { "large cat", S_FELINE, 6, 15, 4, 0, 0, (G_GENO | 1),
  277.       { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  278.         NO_ATTK, NO_ATTK, NO_ATTK },
  279.       250, 250, 0, MS_MEW, MZ_SMALL, 0, 0,
  280.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  281.       M2_STRONG | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
  282.     { "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
  283.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  284.         { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK },
  285.       600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
  286.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  287.       M2_HOSTILE, 0, C(YELLOW) },
  288. /*    gremlins    */
  289.     { "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2),
  290.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  291.         { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 },
  292.         NO_ATTK, NO_ATTK },
  293.       100, 20, 0, MS_LAUGH, MZ_SMALL, MR_POISON, 0,
  294.       M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, 0, C(GREEN) },
  295. /*    humanoids    */
  296.     { "hobbit", S_HUMANOID, 1, 9, MARM(10,7), 0, 6, (G_GENO | 2),
  297.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  298.         NO_ATTK, NO_ATTK, NO_ATTK },
  299.       500, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
  300.       M1_HUMANOID, M2_COLLECT, 0, C(GREEN) },
  301.     { "dwarf", S_HUMANOID,    2, 6, MARM(10,4), 10, 4, (G_GENO | 3),
  302.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  303.         NO_ATTK, NO_ATTK, NO_ATTK },
  304.       900, 300, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  305.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
  306.       M2_DWARF | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  307.       0, C(RED) },
  308.     { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
  309.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  310.         NO_ATTK, NO_ATTK, NO_ATTK },
  311.       1250, 250, 0, MS_GROWL, MZ_LARGE, 0, 0,
  312.       M1_HUMANOID, M2_STRONG | M2_COLLECT, 0, C(BROWN) },
  313.     { "dwarf lord", S_HUMANOID,  4, 6, MARM(10,4), 10, 5, (G_GENO | 2),
  314.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  315.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  316.       900, 300, 0, MS_HUMANOID, MZ_HUMAN,
  317.       0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
  318.       M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS |
  319.       M2_COLLECT, 0, C(BLUE) },
  320.     { "dwarf king", S_HUMANOID,  6, 6, MARM(10,4), 20, 6, (G_GENO | 1),
  321.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  322.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  323.       900, 300, 0, MS_HUMANOID, MZ_HUMAN,
  324.       0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
  325.       M2_DWARF | M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS |
  326.       M2_COLLECT, 0, C(HI_LORD) },
  327.     { "mind flayer", S_HUMANOID, 9, 12, 5, 90, -8, (G_GENO | 1),
  328.       { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_TENT, AD_DRIN, 2, 1 },
  329.         { AT_TENT, AD_DRIN, 2, 1 }, { AT_TENT, AD_DRIN, 2, 1 },
  330.         { AT_TENT, AD_DRIN, 2, 1 }, NO_ATTK },
  331.       1450, 400, 0, MS_HISS, MZ_HUMAN,
  332.       0, 0, M1_HUMANOID | M1_FLY | M1_SEE_INVIS | M1_OMNIVORE,
  333.       M2_HOSTILE | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  334.       0, C(MAGENTA) },
  335. /*    imps & other minor demons/devils */
  336.     { "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1),
  337.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  338.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  339.       100, 100, 0, MS_SILENT, MZ_SMALL,
  340.       MR_SLEEP | MR_POISON, 0, M1_POIS, M2_HOSTILE | M2_STALK, 0, C(RED) },
  341.     { "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2),
  342.       { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK,
  343.         NO_ATTK, NO_ATTK, NO_ATTK },
  344.       60, 100, 0, MS_SILENT, MZ_TINY,
  345.       MR_SLEEP | MR_POISON, MR_SLEEP | MR_POISON,
  346.       M1_FLY | M1_POIS, M2_STALK, 0, C(GREEN) },
  347.     { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
  348.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  349.         NO_ATTK, NO_ATTK, NO_ATTK },
  350.       20, 10, 0, MS_CUSS, MZ_TINY, 0, 0,
  351.       M1_REGEN, M2_WANDER | M2_STALK, 0, C(RED) },
  352.     { "lemure", S_IMP, 3, 3, 7, 0, -7,
  353.       (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1),
  354.       { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  355.         NO_ATTK, NO_ATTK, NO_ATTK },
  356.       150, 100, 0, MS_SILENT, MZ_MEDIUM, MR_SLEEP | MR_POISON, MR_SLEEP,
  357.       M1_POIS | M1_REGEN, M2_HOSTILE | M2_WANDER | M2_STALK | M2_NEUTER,
  358.       0, C(BROWN) },
  359.     { "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2),
  360.       { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 },
  361.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  362.       200, 200, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  363.       M1_REGEN, M2_STALK, 0, C(BLUE) },
  364.     { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
  365.       { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK,
  366.         NO_ATTK, NO_ATTK, NO_ATTK },
  367.       300, 200, 0, MS_SQAWK, MZ_SMALL, MR_POISON, MR_POISON,
  368.       M1_TPORT | M1_TPORT_CNTRL, M2_STALK, 0, C(CYAN) },
  369. /*    jellies     */
  370.     { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
  371.       { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK,
  372.         NO_ATTK, NO_ATTK, NO_ATTK },
  373.       50, 20, 0, MS_SILENT, MZ_MEDIUM,
  374.       MR_COLD | MR_POISON, MR_COLD | MR_POISON,
  375.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  376.       M1_MINDLESS | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
  377.     { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
  378.       { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK,
  379.         NO_ATTK, NO_ATTK, NO_ATTK },
  380.       50, 20, 0, MS_SILENT, MZ_MEDIUM, MR_ACID | MR_STONE, 0,
  381.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  382.       M1_MINDLESS | M1_ACID | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER,
  383.       0, C(GREEN) },
  384.     { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
  385.       { { AT_ENGL, AD_ACID, 3, 6 }, { AT_NONE, AD_ACID, 3, 6 },
  386.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  387.       50, 20, 0, MS_SILENT, MZ_MEDIUM, MR_ACID | MR_STONE, 0,
  388.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  389.       M1_MINDLESS | M1_ACID | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER,
  390.       0, C(BROWN) },
  391. /*    kobolds     */
  392.     { "kobold", S_KOBOLD,  0, 6, MARM(10,7), 0, -2, (G_GENO | 1),
  393.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  394.         NO_ATTK, NO_ATTK, NO_ATTK },
  395.       400, 100, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  396.       M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_COLLECT, 0, C(BROWN) },
  397.     { "large kobold", S_KOBOLD,  1, 6, MARM(10,6), 0, -3, (G_GENO | 1),
  398.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  399.         NO_ATTK, NO_ATTK, NO_ATTK },
  400.       450, 150, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  401.       M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_COLLECT, 0, C(RED) },
  402.     { "kobold lord", S_KOBOLD,  2, 6, MARM(10,5), 0, -4, (G_GENO | 1),
  403.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  404.         NO_ATTK, NO_ATTK, NO_ATTK },
  405.       500, 200, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  406.       M1_HUMANOID | M1_POIS,
  407.       M2_HOSTILE | M2_LORD | M2_MALE | M2_COLLECT, 0, C(HI_LORD) },
  408.     { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
  409.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
  410.         NO_ATTK, NO_ATTK, NO_ATTK },
  411.       450, 150, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
  412.       M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_MAGIC, 0, C(HI_ZAP) },
  413. /*    leprechauns    */
  414.     { "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
  415.       { { AT_CLAW, AD_SGLD, 1, 2 }, NO_ATTK, NO_ATTK,
  416.         NO_ATTK, NO_ATTK, NO_ATTK },
  417.       60, 30, 0, MS_LAUGH, MZ_TINY, 0, 0,
  418.       M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_GREEDY, 0, C(GREEN) },
  419. /*    mimics    */
  420.     { "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2),
  421.       { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK,
  422.         NO_ATTK, NO_ATTK, NO_ATTK },
  423.       300, 200, 0, MS_SILENT, MZ_MEDIUM, MR_ACID, 0,
  424.       M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
  425.       M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  426.       M2_HOSTILE, 0, C(BROWN) },
  427.     { "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1),
  428.       { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK,
  429.         NO_ATTK, NO_ATTK, NO_ATTK },
  430.       600, 400, 0, MS_SILENT, MZ_LARGE, MR_ACID, 0,
  431.       M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
  432.       M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  433.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  434.     { "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1),
  435.       { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 },
  436.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  437.       800, 500, 0, MS_SILENT, MZ_LARGE, MR_ACID, 0,
  438.       M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
  439.       M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
  440.       M2_HOSTILE | M2_STRONG, 0, C(HI_LORD) },
  441. /*    nymphs    */
  442.     { "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  443.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  444.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  445.       600, 300, 0, MS_SEDUCE, MZ_HUMAN,
  446.       0, 0, M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
  447.       0, C(GREEN) },
  448.     { "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  449.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  450.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  451.       600, 300, 0, MS_SEDUCE, MZ_HUMAN,
  452.       0, 0, M1_HUMANOID | M1_TPORT | M1_SWIM,
  453.       M2_HOSTILE | M2_FEMALE | M2_COLLECT, 0, C(BLUE) },
  454.     { "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
  455.       { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
  456.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  457.       600, 300, 0, MS_SEDUCE, MZ_HUMAN,
  458.       0, 0, M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
  459.       0, C(BROWN) },
  460. /*    orcs    */
  461.     { "goblin", S_ORC,  0, 6, MARM(10,6), 0, -3, (G_GENO | 2),
  462.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  463.         NO_ATTK, NO_ATTK, NO_ATTK },
  464.       400, 100, 0, MS_ORC, MZ_SMALL, 0, 0,
  465.       M1_HUMANOID, M2_ORC | M2_COLLECT, 0, C(GRAY) },
  466.     { "hobgoblin", S_ORC,  1, 9, MARM(10,6), 0, -4, (G_GENO | 2),
  467.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  468.         NO_ATTK, NO_ATTK, NO_ATTK },
  469.       1000, 200, 0, MS_ORC, MZ_HUMAN, 0, 0,
  470.       M1_HUMANOID, M2_ORC | M2_STRONG | M2_COLLECT, 0, C(BROWN) },
  471.     /* "orc" for zombie corpses only; they don't get created at random */
  472.     { "orc", S_ORC,  1, 9, MARM(10,6), 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
  473.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  474.         NO_ATTK, NO_ATTK, NO_ATTK },
  475.       850, 150, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  476.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  477.       0, C(RED) },
  478.     { "hill orc", S_ORC, 2, 9, MARM(10,6), 0, -4, (G_GENO | G_LGROUP | 2),
  479.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  480.         NO_ATTK, NO_ATTK, NO_ATTK },
  481.       1000, 200, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  482.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  483.       0, C(YELLOW) },
  484.     { "Mordor orc", S_ORC, 3, 5, MARM(10,6), 0, -5, (G_GENO | G_LGROUP | 1),
  485.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  486.         NO_ATTK, NO_ATTK, NO_ATTK },
  487.       1200, 200, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  488.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  489.       0, C(BLUE) },
  490.     { "Uruk-hai", S_ORC, 3, 7, MARM(10,5), 0, -4, (G_GENO | G_LGROUP | 1),
  491.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  492.         NO_ATTK, NO_ATTK, NO_ATTK },
  493.       1300, 300, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  494.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  495.       0, C(BLACK) },
  496.     { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
  497.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
  498.         NO_ATTK, NO_ATTK, NO_ATTK },
  499.       1000, 300, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  500.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  501.       0, C(HI_ZAP) },
  502.     { "orc-captain", S_ORC, 5, 5, MARM(10,4), 0, -5, (G_GENO | 1),
  503.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  504.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  505.       1350, 350, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
  506.       M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  507.       0, C(HI_LORD) },
  508. /*     piercers    */
  509.     { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 4),
  510.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  511.         NO_ATTK, NO_ATTK, NO_ATTK },
  512.       200, 200, 0, MS_SILENT, MZ_SMALL, 0, 0,
  513.       M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS |
  514.       M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
  515.     { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 2),
  516.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
  517.         NO_ATTK, NO_ATTK, NO_ATTK },
  518.       400, 300, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
  519.       M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS |
  520.       M1_CARNIVORE, M2_HOSTILE, 0, C(CYAN) },
  521. /*    quadrupeds (generic)    */
  522.     { "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4),
  523.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 },
  524.         { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  525.       400, 100, 0, MS_SILENT, MZ_LARGE, 0, 0,
  526.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
  527.     { "mumak", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1),
  528.       { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 },
  529.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  530.       2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  531.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  532.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  533.     { "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2),
  534.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 },
  535.         { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  536.       1200, 500, 0, MS_IMITATE, MZ_LARGE, 0, 0,
  537.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  538.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  539.     { "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1),
  540.       { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
  541.         NO_ATTK, NO_ATTK, NO_ATTK },
  542.       2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  543.       M1_CLING | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  544.       M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
  545.     { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
  546.       { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
  547.         NO_ATTK, NO_ATTK, NO_ATTK },
  548.       2650, 650, 0, MS_SILENT, MZ_LARGE, 0, 0,
  549.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  550.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  551.     { "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2),
  552.       { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 },
  553.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  554.       3800, 800, 0, MS_SILENT, MZ_LARGE, 0, 0,
  555.       M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
  556.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  557. /*    rodents     */
  558.     { "sewer rat",    S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1),
  559.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  560.         NO_ATTK, NO_ATTK, NO_ATTK },
  561.       20, 12, 0, MS_SQEEK, MZ_TINY, 0, 0,
  562.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  563.       M2_HOSTILE, 0, C(BROWN) },
  564.     { "giant rat",    S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2),
  565.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  566.         NO_ATTK, NO_ATTK, NO_ATTK },
  567.       30, 30, 0, MS_SQEEK, MZ_TINY, 0, 0,
  568.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  569.       M2_HOSTILE, 0, C(BROWN) },
  570.     { "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1),
  571.       { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK,
  572.         NO_ATTK, NO_ATTK, NO_ATTK },
  573.       30, 5, 0, MS_SQEEK, MZ_TINY, MR_POISON, 0,
  574.       M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE,
  575.       M2_HOSTILE, 0, C(BROWN) },
  576.     { "wererat", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
  577.       { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
  578.         NO_ATTK, NO_ATTK, NO_ATTK },
  579.       40, 30, 0, MS_SQEEK, MZ_TINY, MR_POISON, 0,
  580.       M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
  581.       M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
  582.     { "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2),
  583.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  584.         NO_ATTK, NO_ATTK, NO_ATTK },
  585.       30, 30, 0, MS_SILENT, MZ_SMALL, 0, 0,
  586.       M1_TUNNEL | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE,
  587.       M2_HOSTILE | M2_GREEDY | M2_JEWELS | M2_COLLECT, 0, C(GRAY) },
  588. /*    spiders and scorpions    */
  589.     { "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2),
  590.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  591.         NO_ATTK, NO_ATTK, NO_ATTK },
  592.       50, 50, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
  593.       M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
  594.       M2_HOSTILE, 0, C(GRAY) },
  595.     { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
  596.       { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK,
  597.         NO_ATTK, NO_ATTK, NO_ATTK },
  598.       100, 100, 0, MS_SILENT, MZ_LARGE, MR_POISON, MR_POISON,
  599.       M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
  600.       M2_HOSTILE | M2_STRONG, 0, C(MAGENTA) },
  601.     { "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2),
  602.       { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  603.         { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  604.       50, 100, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  605.       M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS |
  606.       M1_CARNIVORE, M2_HOSTILE, 0, C(RED) },
  607. /*    trappers, lurkers, &c.    */
  608.     { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
  609.       { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK,
  610.         NO_ATTK, NO_ATTK, NO_ATTK },
  611.       800, 350, 0, MS_SILENT, MZ_HUGE, 0, 0,
  612.       M1_HIDE | M1_FLY | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  613.       M1_CARNIVORE, M2_HOSTILE | M2_STALK | M2_STRONG, 0, C(GRAY) },
  614.     { "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2),
  615.       { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK,
  616.         NO_ATTK, NO_ATTK, NO_ATTK },
  617.       800, 350, 0, MS_SILENT, MZ_HUGE, 0, 0,
  618.       M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  619.       M1_CARNIVORE, M2_HOSTILE | M2_STALK | M2_STRONG, 0, C(GREEN) },
  620. /*    unicorns    */
  621.     { "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2),
  622.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  623.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  624.       1300, 300, 0, MS_NEIGH, MZ_LARGE,
  625.       MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
  626.       M2_WANDER | M2_STRONG | M2_JEWELS, 0, C(WHITE) },
  627.     { "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1),
  628.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  629.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  630.       1300, 300, 0, MS_NEIGH, MZ_LARGE,
  631.       MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
  632.       M2_WANDER | M2_STRONG | M2_JEWELS, 0, C(GRAY) },
  633.     { "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1),
  634.       { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 },
  635.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  636.       1300, 300, 0, MS_NEIGH, MZ_LARGE,
  637.       MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
  638.       M2_WANDER | M2_STRONG | M2_JEWELS, 0, C(BLACK) },
  639. /*    vortices    */
  640.     { "fog cloud",    S_VORTEX, 3,  1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2),
  641.       { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  642.         NO_ATTK, NO_ATTK, NO_ATTK },
  643.       0, 0, 0, MS_SILENT, MZ_HUGE,
  644.       MR_SLEEP | MR_POISON | MR_STONE, 0,
  645.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  646.       M1_MINDLESS | M1_AMORPHOUS | M1_UNSOLID,
  647.       M2_HOSTILE | M2_NEUTER, 0, C(GRAY) },
  648.     { "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2),
  649.       { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK,
  650.         NO_ATTK, NO_ATTK, NO_ATTK },
  651.       0, 0, 0, MS_SILENT, MZ_HUGE,
  652.       MR_SLEEP | MR_POISON | MR_STONE, 0,
  653.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  654.       M1_MINDLESS,
  655.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  656.     { "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  657.       { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK,
  658.         NO_ATTK, NO_ATTK, NO_ATTK },
  659.       0, 0, 0, MS_SILENT, MZ_HUGE,
  660.       MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  661.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  662.       M1_MINDLESS,
  663.       M2_HOSTILE | M2_NEUTER, 0, C(CYAN) },
  664.     { "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1),
  665.       { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 },
  666.         { AT_NONE, AD_ELEC, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  667.       0, 0, 0, MS_SILENT, MZ_HUGE,
  668.       MR_ELEC | MR_SLEEP | MR_DISINT | MR_POISON | MR_STONE, 0,
  669.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  670.       M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(HI_ZAP) },
  671.     { "steam vortex", S_VORTEX, 7, 22, 2, 30, 0,
  672.       (G_HELL | G_GENO | G_NOCORPSE | 2),
  673.       { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK,
  674.         NO_ATTK, NO_ATTK, NO_ATTK },
  675.       0, 0, 0, MS_SILENT, MZ_HUGE,
  676.       MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
  677.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  678.       M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
  679.     { "fire vortex", S_VORTEX, 8, 22, 2, 30, 0,
  680.       (G_HELL | G_GENO | G_NOCORPSE | 1),
  681.       { { AT_ENGL, AD_FIRE, 1, 10 }, { AT_NONE, AD_FIRE, 0, 4 },
  682.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  683.       0, 0, 0, MS_SILENT, MZ_HUGE,
  684.       MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
  685.       M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  686.       M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
  687. /*    worms    */
  688.     { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  689.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  690.         NO_ATTK, NO_ATTK, NO_ATTK },
  691.       600, 250, 0, MS_SILENT, MZ_LARGE, 0, 0,
  692.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE,
  693.       M2_HOSTILE, 0, C(BROWN) },
  694.     { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
  695.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  696.         NO_ATTK, NO_ATTK, NO_ATTK },
  697.       600, 250, 0, MS_SILENT, MZ_LARGE, 0, 0,
  698.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE,
  699.       M2_HOSTILE, 0, C(MAGENTA) },
  700.     { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
  701.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  702.         NO_ATTK, NO_ATTK, NO_ATTK },
  703.       1500, 500, 0, MS_SILENT, MZ_GIGANTIC, 0, 0,
  704.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
  705.       M2_HOSTILE | M2_STRONG | M2_NASTY,
  706.       0, C(BROWN) },
  707.     { "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2),
  708.       { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 },
  709.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  710.       2700, 700, 0, MS_SILENT, MZ_GIGANTIC, 0, 0,
  711.       M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
  712.       M2_HOSTILE | M2_STRONG | M2_NASTY,
  713.       0, C(MAGENTA) },
  714. /*    Dummy monster needed for visual interface. */
  715.     { "long worm tail", S_WORM_TAIL, 0, 0, 0, 0, 0, G_NOGEN | G_NOCORPSE,
  716.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  717.       0, 0, 0, 0, 0, 0, 0, 0, M2_NOPOLY, 0, C(BROWN) },
  718. /*    xan, &c.    */
  719.     { "grid bug", S_XAN, 0, 12, 9, 0, 0,
  720.       (G_GENO | G_SGROUP | G_NOCORPSE | 3),
  721.       { { AT_BITE, AD_ELEC, 1, 1 }, NO_ATTK, NO_ATTK,
  722.         NO_ATTK, NO_ATTK, NO_ATTK },
  723.       15, 10, 0, MS_BUZZ, MZ_TINY, MR_ELEC | MR_POISON, 0,
  724.       M1_ANIMAL, M2_HOSTILE, 0, C(MAGENTA) },
  725.     { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
  726.       { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK,
  727.         NO_ATTK, NO_ATTK, NO_ATTK },
  728.       300, 300, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
  729.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_POIS, M2_HOSTILE, 0, C(RED) },
  730. /*    lights */
  731.     { "yellow light", S_LIGHT, 3, 15, 0, 0, 0, (G_NOCORPSE| G_GENO | 4),
  732.       { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK,
  733.         NO_ATTK, NO_ATTK, NO_ATTK },
  734.       0, 0, 0, MS_SILENT, MZ_SMALL,
  735.       MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON |
  736.       MR_ACID | MR_STONE, 0,
  737.       M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS |
  738.       M1_NOHEAD | M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER,
  739.       0, C(YELLOW) },
  740. /*    zruty    */
  741.     { "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2),
  742.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  743.         { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  744.       1200, 600, 0, MS_SILENT, MZ_LARGE, 0, 0,
  745.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  746.       M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
  747. /*    Angels and other lawful minions */
  748.     { "couatl", S_ANGEL, 8, 10, 5, 30, 7,
  749.       (G_NOHELL | G_SGROUP | G_NOCORPSE | 1),
  750.       { { AT_BITE, AD_DRST, 2, 4 }, { AT_BITE, AD_PHYS, 1, 3 },
  751.         { AT_HUGS, AD_WRAP, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  752.       900, 400, 0, MS_SILENT, MZ_LARGE, MR_POISON, 0, M1_FLY | M1_POIS,
  753.       M2_MINION | M2_STALK | M2_STRONG | M2_NASTY, 0, C(GREEN) },
  754.     { "Aleax", S_ANGEL, 10, 8, 0, 30, 7, (G_NOHELL | G_NOCORPSE | 1),
  755.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_WEAP, AD_PHYS, 1, 6 },
  756.         { AT_KICK, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  757.       WT_HUMAN, 400, 0,
  758.       MS_SILENT, MZ_HUMAN, MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  759.       M1_HUMANOID | M1_SEE_INVIS,
  760.       M2_MINION | M2_STALK | M2_NASTY | M2_COLLECT, 0, C(YELLOW) },
  761.     { "Angel", S_ANGEL, 14, 10, -4, 55, 12, (G_NOHELL | G_NOCORPSE | 1),
  762.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 4 },
  763.         { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 },
  764.         NO_ATTK, NO_ATTK },
  765.       WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN,
  766.       MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  767.       M1_HUMANOID | M1_SEE_INVIS,
  768.       M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_COLLECT,
  769.       0, C(WHITE) },
  770.     { "ki-rin", S_ANGEL, 16, 18, -5, 90, 15, (G_NOHELL | G_NOCORPSE | 1),
  771.       { { AT_KICK, AD_PHYS, 2, 4 }, { AT_KICK, AD_BLND, 2, 4 },
  772.         { AT_BUTT, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  773.       WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE, 0, 0,
  774.       M1_FLY | M1_HUMANOID | M1_SEE_INVIS,
  775.       M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD,
  776.       0, C(HI_GOLD) },
  777.     { "Archon", S_ANGEL, 19, 16, -6, 80, 15, (G_NOHELL | G_NOCORPSE |1),
  778.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_GAZE, AD_BLND, 2, 6 },
  779.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 1, 8 },
  780.         { AT_MAGC, AD_SPEL, 4, 6 }, NO_ATTK },
  781.       WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE,
  782.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  783.       M1_FLY | M1_HUMANOID | M1_SEE_INVIS | M1_REGEN,
  784.       M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD |
  785.       M2_COLLECT | M2_MAGIC,
  786.       0, C(HI_LORD) },
  787. /*    Bats    */
  788.     { "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1),
  789.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  790.         NO_ATTK, NO_ATTK, NO_ATTK },
  791.       20, 20, 0, MS_SQEEK, MZ_TINY, 0, 0,
  792.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  793.       M2_WANDER, 0, C(BROWN) },
  794.     { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
  795.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  796.         NO_ATTK, NO_ATTK, NO_ATTK },
  797.       30, 30, 0, MS_SQEEK, MZ_MEDIUM, 0, 0,
  798.       M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  799.       M2_WANDER | M2_HOSTILE, 0, C(RED) },
  800.     { "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2),
  801.       { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 },
  802.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  803.       30, 20, 0, MS_SQEEK, MZ_TINY, MR_SLEEP | MR_POISON, 0,
  804.       M1_FLY | M1_BREATHLESS | M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_REGEN,
  805.       M2_UNDEAD | M2_HOSTILE, 0, C(BLACK) },
  806. /*    Centaurs    */
  807.     { "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1),
  808.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 },
  809.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  810.       2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  811.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(BROWN) },
  812.     { "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1),
  813.       { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 },
  814.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  815.       2550, 600, 0, MS_SILENT, MZ_LARGE, 0, 0,
  816.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(GREEN) },
  817.     { "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1),
  818.       { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 },
  819.         { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  820.       2550, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  821.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(CYAN) },
  822. /*    Dragons.  The order of the dragons is VERY IMPORTANT.  Quite a few
  823.     pieces of code depend on gray being first and yellow being last.
  824.     The code also depends on the *order* being the same as that for
  825.     dragon scale mail and dragon scales in objects.c            */
  826.     { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  827.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  828.         NO_ATTK, NO_ATTK, NO_ATTK },
  829.       1500, 500, 0, MS_ROAR, MZ_HUGE, 0, 0,
  830.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  831.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(GRAY) },
  832.     { "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  833.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  834.         NO_ATTK, NO_ATTK, NO_ATTK },
  835.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_FIRE, MR_FIRE,
  836.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  837.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(RED) },
  838.     { "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  839.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  840.         NO_ATTK, NO_ATTK, NO_ATTK },
  841.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_COLD, MR_COLD,
  842.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  843.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(WHITE) },
  844.     { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  845.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  846.         NO_ATTK, NO_ATTK, NO_ATTK },
  847.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_SLEEP, MR_SLEEP,
  848.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  849.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(ORANGE_COLORED) },
  850.     { "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  851.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  852.         NO_ATTK, NO_ATTK, NO_ATTK },
  853.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_DISINT, MR_DISINT,
  854.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  855.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(BLACK) },
  856.     { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  857.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  858.         NO_ATTK, NO_ATTK, NO_ATTK },
  859.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_ELEC, MR_ELEC,
  860.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
  861.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(BLUE) },
  862.     { "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  863.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  864.         NO_ATTK, NO_ATTK, NO_ATTK },
  865.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_POISON, MR_POISON,
  866.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_POIS,
  867.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(GREEN) },
  868.     { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
  869.       { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  870.         NO_ATTK, NO_ATTK, NO_ATTK },
  871.       1500, 500, 0, MS_ROAR, MZ_HUGE, MR_ACID | MR_STONE, MR_STONE,
  872.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_ACID,
  873.       M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(YELLOW) },
  874.     { "gray dragon", S_DRAGON, 15, 9, -1, 20, 4, (G_GENO | 1),
  875.       { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  876.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  877.         NO_ATTK, NO_ATTK },
  878.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, 0, 0,
  879.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  880.       M1_CARNIVORE,
  881.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  882.       0, C(GRAY) },
  883.     { "red dragon", S_DRAGON, 15, 9, -1, 20, -4, (G_GENO | 1),
  884.       { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  885.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  886.         NO_ATTK, NO_ATTK },
  887.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_FIRE, MR_FIRE,
  888.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  889.       M1_CARNIVORE,
  890.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  891.       0, C(RED) },
  892.     { "white dragon", S_DRAGON, 15, 9, -1, 20, -5, (G_GENO | 1),
  893.       { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  894.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  895.         NO_ATTK, NO_ATTK },
  896.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_COLD, MR_COLD,
  897.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  898.       M1_CARNIVORE,
  899.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  900.       0, C(WHITE) },
  901.     { "orange dragon", S_DRAGON, 15, 9, -1, 20, 5, (G_GENO | 1),
  902.       { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 },
  903.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  904.         NO_ATTK, NO_ATTK },
  905.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_SLEEP, MR_SLEEP,
  906.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  907.       M1_CARNIVORE,
  908.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  909.       0, C(ORANGE_COLORED) },
  910.     { "black dragon", S_DRAGON, 15, 9, -1, 20, -6, (G_GENO | 1),
  911.       { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 },
  912.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  913.         NO_ATTK, NO_ATTK },
  914.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_DISINT, MR_DISINT,
  915.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  916.       M1_CARNIVORE,
  917.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  918.       0, C(BLACK) },
  919.     { "blue dragon", S_DRAGON, 15, 9, -1, 20, -7, (G_GENO | 1),
  920.       { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  921.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  922.         NO_ATTK, NO_ATTK },
  923.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_ELEC, MR_ELEC,
  924.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  925.       M1_CARNIVORE,
  926.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  927.       0, C(BLUE) },
  928.     { "green dragon", S_DRAGON, 15, 9, -1, 20, 6, (G_GENO | 1),
  929.       { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  930.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  931.         NO_ATTK, NO_ATTK },
  932.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_POISON, MR_POISON,
  933.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  934.       M1_CARNIVORE | M1_POIS,
  935.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  936.       0, C(GREEN) },
  937.     { "yellow dragon", S_DRAGON, 15, 9, -1, 20, 7, (G_GENO | 1),
  938.       { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 },
  939.         { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  940.         NO_ATTK, NO_ATTK },
  941.       WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC,
  942.       MR_ACID | MR_STONE, MR_STONE,
  943.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
  944.       M1_CARNIVORE | M1_ACID,
  945.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  946.       0, C(YELLOW) },
  947. /*    Elementals    */
  948.     { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1),
  949.       { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  950.         NO_ATTK, NO_ATTK, NO_ATTK },
  951.       0, 0, 0, MS_SILENT, MZ_HUGE, MR_POISON | MR_STONE, 0,
  952.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID |
  953.       M1_FLY,
  954.       M2_STRONG | M2_NEUTER, 0, C(CYAN) },
  955.     { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
  956.       { { AT_CLAW, AD_FIRE, 3, 6 }, { AT_NONE, AD_FIRE, 0, 4 },
  957.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  958.       0, 0, 0, MS_SILENT, MZ_HUGE, MR_FIRE | MR_POISON | MR_STONE, 0,
  959.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID |
  960.       M1_FLY,
  961.       M2_STRONG | M2_NEUTER, 0, C(YELLOW) },
  962.     { "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  963.       { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK,
  964.         NO_ATTK, NO_ATTK, NO_ATTK },
  965.       2500, 0, 0, MS_SILENT, MZ_HUGE,
  966.       MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
  967.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS |
  968.       M1_WALLWALK | M1_THICK_HIDE, M2_STRONG | M2_NEUTER, 0, C(BROWN) },
  969.     { "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1),
  970.       { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK,
  971.         NO_ATTK, NO_ATTK, NO_ATTK },
  972.       2500, 0, 0, MS_SILENT, MZ_HUGE, MR_POISON | MR_STONE, 0,
  973.       M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_AMPHIBIOUS |
  974.       M1_SWIM,
  975.       M2_STRONG | M2_NEUTER, 0, C(BLUE) },
  976. /*    Fungi    */
  977.     { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  978.       { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK,
  979.         NO_ATTK, NO_ATTK, NO_ATTK },
  980.       50, 30, 0, MS_SILENT, MZ_SMALL,
  981.       MR_COLD | MR_POISON, MR_COLD | MR_POISON,
  982.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  983.       M1_OMNIVORE,
  984.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  985.     { "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2),
  986.       { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK,
  987.         NO_ATTK, NO_ATTK, NO_ATTK },
  988.       50, 30, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  989.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  990.       M1_OMNIVORE | M1_POIS,
  991.       M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
  992.     { "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  993.       { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK,
  994.         NO_ATTK, NO_ATTK, NO_ATTK },
  995.       50, 30, 0, MS_SILENT, MZ_SMALL, MR_ACID | MR_STONE, MR_STONE,
  996.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  997.       M1_OMNIVORE | M1_ACID,
  998.       M2_HOSTILE | M2_NEUTER, 0, C(GREEN) },
  999.     { "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
  1000.       { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK,
  1001.         NO_ATTK, NO_ATTK, NO_ATTK },
  1002.       50, 30, 0, MS_SILENT, MZ_SMALL,
  1003.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1004.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  1005.       M1_OMNIVORE,
  1006.       M2_HOSTILE | M2_NEUTER, 0, C(RED) },
  1007.     { "shrieker", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 1),
  1008.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1009.       100, 100, 0, MS_SHRIEK, MZ_SMALL, MR_POISON, MR_POISON,
  1010.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
  1011.       M2_HOSTILE | M2_NEUTER, 0, C(MAGENTA) },
  1012.     { "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2),
  1013.       { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 },
  1014.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1015.       100, 100, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
  1016.       M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
  1017.       M1_OMNIVORE,
  1018.       M2_HOSTILE | M2_NEUTER, 0, C(MAGENTA) },
  1019. /*    Gnomes    */
  1020.     { "gnome", S_GNOME, 1, 6, MARM(10,5), 4, 0, (G_GENO | G_SGROUP | 1),
  1021.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1022.         NO_ATTK, NO_ATTK, NO_ATTK },
  1023.       650, 100, 0, MS_ORC, MZ_SMALL, 0, 0,
  1024.       M1_HUMANOID, M2_COLLECT, 0, C(BROWN) },
  1025.     { "gnome lord", S_GNOME, 3, 8, MARM(10,4), 4, 0, (G_GENO | 2),
  1026.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1027.         NO_ATTK, NO_ATTK, NO_ATTK },
  1028.       700, 120, 0, MS_ORC, MZ_SMALL, 0, 0,
  1029.       M1_HUMANOID, M2_LORD | M2_MALE | M2_COLLECT, 0, C(BLUE) },
  1030.     { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
  1031.       { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
  1032.         NO_ATTK, NO_ATTK, NO_ATTK },
  1033.       700, 120, 0, MS_ORC, MZ_SMALL, 0, 0,
  1034.       M1_HUMANOID, M2_MAGIC, 0, C(HI_ZAP) },
  1035.     { "gnome king", S_GNOME, 5, 10, MARM(10,2), 20, 0, (G_GENO | 1),
  1036.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1037.         NO_ATTK, NO_ATTK, NO_ATTK },
  1038.       750, 150, 0, MS_ORC, MZ_SMALL, 0, 0,
  1039.       M1_HUMANOID, M2_PRINCE | M2_MALE | M2_COLLECT, 0, C(HI_LORD) },
  1040. #ifdef SPLITMON_1
  1041. };
  1042. #endif
  1043. #endif /* !SPLITMON_2 */
  1044.  
  1045. /* horrible kludge alert:
  1046.  * This is a compiler-specific kludge to allow the compilation of monst.o in
  1047.  * two pieces, by defining first SPLITMON_1 and then SPLITMON_2. The
  1048.  * resulting assembler files (monst1.s and monst2.s) are then run through
  1049.  * sed to change local symbols, concatenated together, and assembled to
  1050.  * produce monst.o. THIS ONLY WORKS WITH THE ATARI GCC, and should only
  1051.  * be done if you don't have enough memory to compile monst.o the "normal"
  1052.  * way.  --ERS
  1053.  */
  1054.  
  1055. #ifndef SPLITMON_1
  1056. #ifdef SPLITMON_2
  1057. struct permonst _mons2[] = {
  1058. #endif
  1059. /*    giant Humanoids */
  1060.     { "giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_NOGEN | 1),
  1061.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  1062.         NO_ATTK, NO_ATTK, NO_ATTK },
  1063.       2250, 750, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1064.       M1_HUMANOID,
  1065.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1066.       M2_JEWELS, 0, C(RED) },
  1067.     { "stone giant", S_GIANT, 6, 6, 0, 0, 2, (G_GENO | G_SGROUP | 1),
  1068.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  1069.         NO_ATTK, NO_ATTK, NO_ATTK },
  1070.       2250, 750, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1071.       M1_HUMANOID,
  1072.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1073.       M2_JEWELS, 0, C(GRAY) },
  1074.     { "hill giant", S_GIANT, 8, 10, 6, 0, -2, (G_GENO | G_SGROUP | 1),
  1075.       { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
  1076.         NO_ATTK, NO_ATTK, NO_ATTK },
  1077.       2200, 700, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1078.       M1_HUMANOID,
  1079.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1080.       M2_JEWELS, 0, C(CYAN) },
  1081.     { "fire giant", S_GIANT, 9, 12, 4, 5, 2, (G_GENO | G_SGROUP | 1),
  1082.       { { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK,
  1083.         NO_ATTK, NO_ATTK, NO_ATTK },
  1084.       2250, 750, 0, MS_SILENT, MZ_HUGE, MR_FIRE, MR_FIRE,
  1085.       M1_HUMANOID,
  1086.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1087.       M2_JEWELS, 0, C(YELLOW) },
  1088.     { "frost giant", S_GIANT, 10, 12, 3, 10, -3, (G_GENO | G_SGROUP | 1),
  1089.       { { AT_WEAP, AD_PHYS, 2, 12 }, NO_ATTK, NO_ATTK,
  1090.         NO_ATTK, NO_ATTK, NO_ATTK },
  1091.       2250, 750, 0, MS_SILENT, MZ_HUGE, MR_COLD, MR_COLD,
  1092.       M1_HUMANOID,
  1093.       M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_NASTY | M2_COLLECT |
  1094.       M2_JEWELS, 0, C(WHITE) },
  1095.     { "ettin", S_GIANT, 10, 12, 3, 0, 0, (G_GENO | 1),
  1096.       { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1097.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1098.       1700, 500, 0, MS_GRUNT, MZ_HUGE, 0, 0,
  1099.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1100.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT, 0, C(BROWN) },
  1101.     { "titan", S_GIANT, 16, 18, -3, 70, 9, 1,
  1102.       { { AT_WEAP, AD_PHYS, 2, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1103.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1104.       2300, 900, 0, MS_SILENT, MZ_HUGE, 0, 0,
  1105.       M1_FLY | M1_HUMANOID, M2_STRONG | M2_ROCKTHROW | M2_NASTY |
  1106.       M2_COLLECT | M2_MAGIC, 0, C(MAGENTA) },
  1107.     { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
  1108.       { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
  1109.         { AT_BUTT, AD_PHYS, 2, 8}, NO_ATTK, NO_ATTK, NO_ATTK },
  1110.       1500, 700, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1111.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1112.       M2_HOSTILE | M2_STRONG | M2_NASTY, 0, C(BROWN) },
  1113. /*    Invisible stalker    */
  1114.     { "stalker", S_STALKER, 8, 12, 3, 0, 0, (G_GENO | 3),
  1115.       { { AT_CLAW, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK,
  1116.         NO_ATTK, NO_ATTK, NO_ATTK },
  1117.       900, 400, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1118.       M1_ANIMAL | M1_FLY | M1_SEE_INVIS,
  1119.       M2_WANDER | M2_STALK | M2_HOSTILE | M2_STRONG, 0, C(WHITE) },
  1120. /*    Jabberwock */
  1121.     { "jabberwock", S_JABBERWOCK, 15, 12, -2, 50, 0, (G_GENO | 1),
  1122.       { { AT_BITE, AD_PHYS, 2, 10 }, { AT_BITE, AD_PHYS, 2, 10 },
  1123.         { AT_CLAW, AD_PHYS, 2, 10 }, { AT_CLAW, AD_PHYS, 2, 10 },
  1124.         NO_ATTK, NO_ATTK },
  1125.       1300, 600, 0, MS_BURBLE, MZ_LARGE, 0, 0,
  1126.       M1_ANIMAL | M1_FLY | M1_CARNIVORE,
  1127.       M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT,
  1128.       0, C(ORANGE_COLORED) },
  1129. /*    Kops    */
  1130. #ifdef KOPS
  1131.     { "Keystone Kop", S_KOP, 1, 6, MARM(10,7), 10, 9,
  1132.       (G_GENO | G_LGROUP | G_NOGEN),
  1133.       { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1134.         NO_ATTK, NO_ATTK, NO_ATTK },
  1135.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1136.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_MALE | M2_COLLECT,
  1137.       0, C(BLUE) },
  1138.     { "Kop Sergeant", S_KOP, 2, 8, MARM(10,6), 10, 10,
  1139.       (G_GENO | G_SGROUP | G_NOGEN),
  1140.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1141.         NO_ATTK, NO_ATTK, NO_ATTK },
  1142.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1143.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  1144.       0, C(BLUE) },
  1145.     { "Kop Lieutenant", S_KOP, 3, 10, MARM(10,5), 20, 11,
  1146.       (G_GENO | G_NOGEN),
  1147.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1148.         NO_ATTK, NO_ATTK, NO_ATTK },
  1149.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1150.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  1151.       0, C(CYAN) },
  1152.     { "Kop Kaptain", S_KOP, 4, 12, MARM(10,4), 20, 12, (G_GENO | G_NOGEN),
  1153.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1154.         NO_ATTK, NO_ATTK, NO_ATTK },
  1155.       WT_HUMAN, 200, 0, MS_ARREST, MZ_HUMAN, 0, 0, M1_HUMANOID,
  1156.       M2_HUMAN | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_MALE | M2_COLLECT,
  1157.       0, C(HI_LORD) },
  1158. #endif
  1159. /*    Liches     */
  1160.     { "lich", S_LICH, 11, 6, 0, 30, -9, (G_GENO | 1),
  1161.       { { AT_TUCH, AD_COLD, 1, 10 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1162.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1163.       1200, 100, 0, MS_MUMBLE, MZ_HUMAN,
  1164.       MR_COLD | MR_SLEEP | MR_POISON, MR_COLD,
  1165.       M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1166.       M2_UNDEAD | M2_HOSTILE | M2_MAGIC, 0, C(BROWN) },
  1167.     { "demilich", S_LICH, 14, 9, -2, 60, -12, (G_GENO | 1),
  1168.       { { AT_TUCH, AD_COLD, 3, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1169.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1170.       1200, 100, 0, MS_MUMBLE, MZ_HUMAN,
  1171.       MR_COLD | MR_SLEEP | MR_POISON, MR_COLD,
  1172.       M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1173.       M2_UNDEAD | M2_HOSTILE | M2_MAGIC, 0, C(RED) },
  1174.     { "master lich", S_LICH, 17, 9, -4, 90, -15, (G_HELL | G_GENO | 1),
  1175.       { { AT_TUCH, AD_COLD, 3, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1176.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1177.       1200, 100, 0, MS_MUMBLE, MZ_HUMAN,
  1178.       MR_FIRE | MR_COLD | MR_SLEEP | MR_POISON, MR_FIRE | MR_COLD,
  1179.       M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1180.       M2_UNDEAD | M2_HOSTILE | M2_MAGIC, M3_WANTSBOOK, C(HI_LORD) },
  1181. /*    Mummies     */
  1182.     { "kobold mummy", S_MUMMY, 3, 8, 6, 20, -2, (G_GENO | G_NOCORPSE | 1),
  1183.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1184.         NO_ATTK, NO_ATTK, NO_ATTK },
  1185.       400, 50, 0, MS_SILENT, MZ_SMALL,
  1186.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1187.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1188.       M2_UNDEAD | M2_HOSTILE, 0, C(BROWN) },
  1189.     { "gnome mummy", S_MUMMY, 4, 10, 6, 20, -3, (G_GENO | G_NOCORPSE | 1),
  1190.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1191.         NO_ATTK, NO_ATTK, NO_ATTK },
  1192.       650, 50, 0, MS_SILENT, MZ_SMALL,
  1193.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1194.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1195.       M2_UNDEAD | M2_HOSTILE, 0, C(RED) },
  1196.     { "orc mummy", S_MUMMY, 5, 10, 5, 20, -4, (G_GENO | G_NOCORPSE | 1),
  1197.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1198.         NO_ATTK, NO_ATTK, NO_ATTK },
  1199.       850, 75, 0, MS_SILENT, MZ_HUMAN,
  1200.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1201.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1202.       M2_UNDEAD | M2_HOSTILE | M2_ORC | M2_GREEDY | M2_JEWELS, 0, C(GRAY) },
  1203.     { "elf mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  1204.       { { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1205.         NO_ATTK, NO_ATTK, NO_ATTK },
  1206.       WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN,
  1207.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1208.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1209.       M2_UNDEAD | M2_HOSTILE | M2_ELF, 0, C(GREEN) },
  1210.     { "human mummy", S_MUMMY, 6, 12, 4, 30, -5, (G_GENO | G_NOCORPSE | 1),
  1211.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  1212.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1213.       WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN,
  1214.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1215.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1216.       M2_UNDEAD | M2_HOSTILE, 0, C(GRAY) },
  1217.     { "ettin mummy", S_MUMMY, 7, 12, 4, 30, -6, (G_GENO | G_NOCORPSE | 1),
  1218.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_PHYS, 2, 6 },
  1219.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1220.       1700, 250, 0, MS_SILENT, MZ_HUGE,
  1221.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1222.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1223.       M2_UNDEAD | M2_HOSTILE | M2_STRONG, 0, C(BLUE) },
  1224.     { "giant mummy", S_MUMMY, 8, 14, 3, 30, -7, (G_GENO | G_NOCORPSE | 1),
  1225.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1226.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1227.       2050, 375, 0, MS_SILENT, MZ_HUGE,
  1228.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1229.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1230.       M2_UNDEAD | M2_HOSTILE | M2_GIANT | M2_STRONG | M2_JEWELS,
  1231.       0, C(CYAN) },
  1232. /*    Nagas    */
  1233.     { "red naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1234.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1235.         NO_ATTK, NO_ATTK, NO_ATTK },
  1236.       500, 100, 0, MS_MUMBLE, MZ_LARGE,
  1237.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1238.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(RED) },
  1239.     { "black naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1240.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1241.         NO_ATTK, NO_ATTK, NO_ATTK },
  1242.       500, 100, 0, MS_MUMBLE, MZ_LARGE,
  1243.       MR_POISON | MR_ACID | MR_STONE, MR_POISON | MR_STONE,
  1244.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(BLACK) },
  1245.     { "golden naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1246.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1247.         NO_ATTK, NO_ATTK, NO_ATTK },
  1248.       500, 100, 0, MS_MUMBLE, MZ_LARGE, MR_POISON, MR_POISON,
  1249.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(HI_GOLD) },
  1250.     { "guardian naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO,
  1251.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1252.         NO_ATTK, NO_ATTK, NO_ATTK },
  1253.       500, 100, 0, MS_MUMBLE, MZ_LARGE, MR_POISON, MR_POISON,
  1254.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE, M2_STRONG, 0, C(GREEN) },
  1255.     { "red naga", S_NAGA, 6, 12, 4, 0, -4, (G_GENO | 1),
  1256.       { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BREA, AD_FIRE, 2, 6 },
  1257.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1258.       2600, 400, 0, MS_MUMBLE, MZ_HUGE,
  1259.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1260.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS,
  1261.       M2_STRONG, 0, C(RED) },
  1262.     { "black naga", S_NAGA, 8, 14, 2, 10, 4, (G_GENO | 1),
  1263.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_SPIT, AD_ACID, 0, 0 },
  1264.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1265.       2600, 400, 0, MS_MUMBLE, MZ_HUGE,
  1266.       MR_POISON | MR_ACID | MR_STONE, MR_POISON | MR_STONE,
  1267.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_ACID,
  1268.       M2_STRONG, 0, C(BLACK) },
  1269.     { "golden naga", S_NAGA, 10, 14, 2, 70, 5, (G_GENO | 1),
  1270.       { { AT_BITE, AD_PHYS, 2, 6 }, { AT_MAGC, AD_SPEL, 4, 6 },
  1271.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1272.       2600, 400, 0, MS_MUMBLE, MZ_HUGE, MR_POISON, MR_POISON,
  1273.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS,
  1274.       M2_STRONG, 0, C(HI_GOLD) },
  1275.     { "guardian naga", S_NAGA, 12, 16, 0, 50, 7, (G_GENO | 1),
  1276.       { { AT_BITE, AD_PLYS, 1, 6 }, { AT_HUGS, AD_PHYS, 2, 4 },
  1277.         { AT_SPIT, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1278.       2600, 400, 0, MS_MUMBLE, MZ_HUGE, MR_POISON, MR_POISON,
  1279.       M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_POIS,
  1280.       M2_STRONG, 0, C(GREEN) },
  1281. /*    Ogres    */
  1282.     { "ogre", S_OGRE, 5, 10, 5, 0, -3, (G_SGROUP | G_GENO | 1),
  1283.       { { AT_WEAP, AD_PHYS, 2, 5 }, NO_ATTK, NO_ATTK,
  1284.         NO_ATTK, NO_ATTK, NO_ATTK },
  1285.       1600, 500, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1286.       M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  1287.       0, C(BROWN) },
  1288.     { "ogre lord", S_OGRE, 7, 12, 3, 30, -5, (G_GENO | 2),
  1289.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1290.         NO_ATTK, NO_ATTK, NO_ATTK },
  1291.       1700, 700, 0, MS_GRUNT, MZ_LARGE, 0, 0, M1_HUMANOID,
  1292.       M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  1293.       0, C(RED) },
  1294.     { "ogre king", S_OGRE, 7, 14, 4, 60, -7, (G_GENO | 2),
  1295.       { { AT_WEAP, AD_PHYS, 3, 5 }, NO_ATTK, NO_ATTK,
  1296.         NO_ATTK, NO_ATTK, NO_ATTK },
  1297.       1700, 750, 0, MS_GRUNT, MZ_LARGE, 0, 0, M1_HUMANOID,
  1298.       M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  1299.       0, C(HI_LORD) },
  1300. /*    Puddings */
  1301.     { "gray ooze", S_PUDDING, 3, 1, 8, 0, 0, (G_GENO | 2),
  1302.       { { AT_BITE, AD_RUST, 2, 8 }, NO_ATTK, NO_ATTK,
  1303.         NO_ATTK, NO_ATTK, NO_ATTK },
  1304.       500, 250, 0, MS_SILENT, MZ_MEDIUM,
  1305.       MR_FIRE | MR_COLD | MR_POISON | MR_ACID | MR_STONE,
  1306.       MR_FIRE | MR_COLD | MR_POISON,
  1307.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  1308.       M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  1309.       M2_HOSTILE | M2_NEUTER, 0, C(GRAY) },
  1310.     { "brown pudding", S_PUDDING, 5, 3, 8, 0, 0, (G_GENO | 1),
  1311.       { { AT_BITE, AD_DCAY, 0, 0 }, NO_ATTK, NO_ATTK,
  1312.         NO_ATTK, NO_ATTK, NO_ATTK },
  1313.       500, 250, 0, MS_SILENT, MZ_MEDIUM,
  1314.       MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
  1315.       MR_COLD | MR_ELEC | MR_POISON,
  1316.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  1317.       M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  1318.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  1319.     { "black pudding", S_PUDDING, 10, 6, 6, 0, 0, (G_GENO | 1),
  1320.       { { AT_BITE, AD_RUST, 3, 8 }, { AT_NONE, AD_RUST, 0, 0 },
  1321.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1322.       900, 250, 0, MS_SILENT, MZ_LARGE,
  1323.       MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
  1324.       MR_COLD | MR_ELEC | MR_POISON,
  1325.       M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
  1326.       M1_MINDLESS | M1_OMNIVORE | M1_ACID,
  1327.       M2_HOSTILE | M2_NEUTER, 0, C(BLACK) },
  1328. /*    Quantum Mechanics    */
  1329.     { "quantum mechanic", S_QUANTMECH, 7, 12, 3, 10, 0, (G_GENO | 3),
  1330.       { { AT_CLAW, AD_TLPT, 1, 4 }, NO_ATTK, NO_ATTK,
  1331.         NO_ATTK, NO_ATTK, NO_ATTK },
  1332.       WT_HUMAN, 20, 0, MS_HUMANOID, MZ_HUMAN, MR_POISON, 0,
  1333.       M1_HUMANOID | M1_POIS | M1_TPORT, M2_HOSTILE, 0, C(CYAN) },
  1334. /*    Rust Monster    */
  1335.     { "rust monster", S_RUSTMONST, 5, 18, 2, 0, 0, (G_GENO | 2),
  1336.       { { AT_TUCH, AD_RUST, 0, 0 }, { AT_TUCH, AD_RUST, 0, 0 },
  1337.         { AT_NONE, AD_RUST, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1338.       1000, 250, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
  1339.       M1_SWIM | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE, M2_HOSTILE,
  1340.       0, C(BROWN) },
  1341. /*    Snakes    */
  1342.     { "garter snake", S_SNAKE, 1, 8, 8, 0, 0, (G_LGROUP | G_GENO | 1),
  1343.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  1344.         NO_ATTK, NO_ATTK, NO_ATTK },
  1345.       50, 60, 0, MS_HISS, MZ_TINY, 0, 0,
  1346.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY |
  1347.       M1_OVIPAROUS | M1_CARNIVORE, 0, 0, C(GREEN) },
  1348.     { "snake", S_SNAKE, 4, 15, 3, 0, 0, (G_GENO | 2),
  1349.       { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK,
  1350.         NO_ATTK, NO_ATTK, NO_ATTK },
  1351.       100, 80, 0, MS_HISS, MZ_SMALL, MR_POISON, MR_POISON,
  1352.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1353.       M1_OVIPAROUS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  1354.     { "water moccasin", S_SNAKE, 4, 15, 3, 0, 0,
  1355.       (G_GENO | G_NOGEN | G_LGROUP),
  1356.       { { AT_BITE, AD_DRST, 1, 6 }, NO_ATTK, NO_ATTK,
  1357.         NO_ATTK, NO_ATTK, NO_ATTK },
  1358.       150, 80, 0, MS_HISS, MZ_SMALL, MR_POISON, MR_POISON,
  1359.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1360.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(RED) },
  1361.     { "pit viper", S_SNAKE, 6, 15, 2, 0, 0, (G_GENO | 1),
  1362.       { { AT_BITE, AD_DRST, 1, 4 }, { AT_BITE, AD_DRST, 1, 4 },
  1363.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1364.       100, 60, 0, MS_HISS, MZ_MEDIUM,
  1365.       MR_POISON, MR_POISON,
  1366.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1367.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(BLUE) },
  1368.     { "python", S_SNAKE, 6, 3, 5, 0, 0, (G_GENO | 1),
  1369.       { { AT_BITE, AD_DRST, 1, 4 }, {AT_BITE, AD_PHYS, 1, 4},
  1370.         { AT_HUGS, AD_WRAP, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1371.       250, 100, 0, MS_HISS, MZ_LARGE, MR_POISON, MR_POISON,
  1372.       M1_SWIM | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1373.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE | M2_STRONG, 0, C(MAGENTA) },
  1374.     { "cobra", S_SNAKE, 6, 18, 2, 0, 0, (G_GENO | 1),
  1375.       { { AT_BITE, AD_DRST, 2, 4 }, { AT_SPIT, AD_BLND, 0, 0 },
  1376.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1377.       250, 100, 0, MS_HISS, MZ_MEDIUM,
  1378.       MR_POISON, MR_POISON,
  1379.       M1_SWIM | M1_CONCEAL | M1_NOLIMBS | M1_ANIMAL | M1_SLITHY | M1_POIS |
  1380.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(BLUE) },
  1381. /*    Trolls    */
  1382.     { "troll", S_TROLL, 7, 12, 4, 0, -3, (G_GENO | 2),
  1383.       { { AT_CLAW, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 4, 2 },
  1384.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1385.       800, 350, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1386.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1387.       M2_STRONG | M2_STALK | M2_HOSTILE, 0, C(BROWN) },
  1388.     { "ice troll", S_TROLL, 9, 10, 2, 20, -3, (G_GENO | 1),
  1389.       { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_CLAW, AD_COLD, 2, 6 },
  1390.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1391.       1000, 300, 0, MS_GRUNT, MZ_LARGE, MR_COLD, MR_COLD,
  1392.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1393.       M2_STRONG | M2_STALK | M2_HOSTILE, 0, C(WHITE) },
  1394.     { "rock troll", S_TROLL, 9, 12, 0, 0, -3, (G_GENO | 1),
  1395.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1396.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1397.       1200, 300, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1398.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1399.       M2_STRONG | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, C(CYAN) },
  1400.     { "water troll", S_TROLL, 11, 14, 4, 40, -3, (G_NOGEN | G_GENO),
  1401.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1402.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1403.       1200, 350, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1404.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE | M1_SWIM,
  1405.       M2_STRONG | M2_STALK | M2_HOSTILE, 0, C(BLUE) },
  1406.     { "Olog-hai", S_TROLL, 13, 12, -4, 0, -7, (G_GENO | 1),
  1407.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1408.         { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1409.       1500, 400, 0, MS_GRUNT, MZ_LARGE, 0, 0,
  1410.       M1_HUMANOID | M1_REGEN | M1_CARNIVORE,
  1411.       M2_STRONG | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, C(HI_LORD) },
  1412. /*    Umber Hulk    */
  1413.     { "umber hulk", S_UMBER, 9, 6, 2, 25, 0, (G_GENO | 2),
  1414.       { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1415.         { AT_BITE, AD_PHYS, 2, 5 }, { AT_GAZE, AD_CONF, 0, 0 },
  1416.         NO_ATTK, NO_ATTK },
  1417.       1200, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1418.       M1_TUNNEL | M1_CARNIVORE, M2_STRONG, 0, C(BROWN) },
  1419. /*    Vampires    */
  1420.     { "vampire", S_VAMPIRE, 10, 12, 1, 25, -8, (G_GENO | 1),
  1421.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  1422.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1423.       WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN, MR_SLEEP | MR_POISON, 0,
  1424.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1425.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY, 0, C(RED) },
  1426.     { "vampire lord", S_VAMPIRE, 12, 14, 0, 50, -9, (G_GENO | 1),
  1427.       { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_BITE, AD_DRLI, 1, 8 },
  1428.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1429.       WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN, MR_SLEEP | MR_POISON, 0,
  1430.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1431.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY |
  1432.       M2_LORD | M2_MALE, 0, C(BLUE) },
  1433.     { "Vlad the Impaler", S_VAMPIRE, 14, 18, -3, 80, -10,
  1434.       (G_NOGEN | G_NOCORPSE | G_UNIQ),
  1435.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRLI, 1, 6 },
  1436.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1437.       WT_HUMAN, 400, 0, MS_VAMPIRE, MZ_HUMAN, MR_SLEEP | MR_POISON, 0,
  1438.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_POIS | M1_REGEN,
  1439.       M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG |
  1440.       M2_NASTY | M2_PRINCE | M2_MALE, M3_WANTSBOOK, C(HI_LORD) },
  1441. /*    Wraiths     */
  1442.     { "barrow wight", S_WRAITH, 3, 12, 5, 5, -3, (G_GENO | G_NOCORPSE | 1),
  1443.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1444.         { AT_WEAP, AD_DRLI, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1445.       1200, 0, 0, MS_SILENT, MZ_HUMAN, MR_COLD | MR_SLEEP | MR_POISON, 0,
  1446.       M1_BREATHLESS | M1_HUMANOID,
  1447.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_COLLECT, 0, C(GRAY) },
  1448.     { "wraith", S_WRAITH, 6, 12, 4, 15, -6, (G_GENO | 2),
  1449.       { { AT_TUCH, AD_DRLI, 1, 6 }, NO_ATTK, NO_ATTK,
  1450.         NO_ATTK, NO_ATTK, NO_ATTK },
  1451.       0, 0, 0, MS_SILENT, MZ_HUMAN,
  1452.       MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1453.       M1_BREATHLESS | M1_FLY | M1_HUMANOID | M1_UNSOLID,
  1454.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(BLACK) },
  1455.     { "Nazgul", S_WRAITH, 13, 12, 0, 25, -17, (G_GENO | G_NOCORPSE | 1),
  1456.       { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 },
  1457.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1458.       WT_HUMAN, 0, 0, MS_SILENT, MZ_HUMAN,
  1459.       MR_COLD | MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_HUMANOID,
  1460.       M2_UNDEAD | M2_STALK | M2_STRONG | M2_HOSTILE | M2_MALE | M2_COLLECT,
  1461.       0, C(HI_LORD) },
  1462. /*    Xorn    */
  1463.     { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1),
  1464.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1465.         { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 4, 6 },
  1466.         NO_ATTK, NO_ATTK }, 1200, 700, 0, MS_SILENT, MZ_MEDIUM,
  1467.       MR_FIRE | MR_COLD | MR_STONE, MR_FIRE | MR_COLD | MR_STONE,
  1468.       M1_BREATHLESS | M1_WALLWALK | M1_THICK_HIDE | M1_METALLIVORE,
  1469.       M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
  1470. /*    Yeti, Apes and other large beasts */
  1471.     { "ape", S_YETI, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2),
  1472.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1473.         { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1474.       1100, 500, 0, MS_GROWL, MZ_LARGE, 0, 0,
  1475.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1476.       M2_STRONG, 0, C(BROWN) },
  1477.     { "owlbear", S_YETI, 5, 12, 5, 0, 0, (G_GENO | 3),
  1478.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1479.         { AT_HUGS, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1480.       1700, 700, 0, MS_SILENT, MZ_LARGE, 0, 0,
  1481.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1482.       M2_HOSTILE | M2_STRONG | M2_NASTY, 0, C(BROWN) },
  1483.     { "yeti", S_YETI, 5, 15, 6, 0, 0, (G_GENO | 2),
  1484.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1485.         { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1486.       1600, 700, 0, MS_GROWL, MZ_LARGE, MR_COLD, MR_COLD,
  1487.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1488.       M2_HOSTILE | M2_STRONG, 0, C(WHITE) },
  1489.     { "carnivorous ape", S_YETI, 6, 12, 6, 0, 0, (G_GENO | 1),
  1490.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1491.         { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1492.       1250, 550, 0, MS_GROWL, MZ_LARGE, 0, 0,
  1493.       M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
  1494.       M2_HOSTILE | M2_STRONG, 0, C(BLACK) },
  1495.     { "sasquatch", S_YETI, 7, 15, 6, 0, 2, (G_GENO | 1),
  1496.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1497.         { AT_KICK, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1498.       1550, 750, 0, MS_GROWL, MZ_LARGE, 0, 0,
  1499.       M1_ANIMAL | M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  1500.       M2_STRONG, 0, C(GRAY) },
  1501. /*    Zombies     */
  1502.     { "kobold zombie", S_ZOMBIE, 0, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  1503.       { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  1504.         NO_ATTK, NO_ATTK, NO_ATTK },
  1505.       400, 50, 0, MS_SILENT, MZ_SMALL,
  1506.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1507.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1508.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(BROWN) },
  1509.     { "gnome zombie", S_ZOMBIE, 1, 6, 10, 0, -2, (G_GENO | G_NOCORPSE | 1),
  1510.       { { AT_CLAW, AD_PHYS, 1, 5 }, NO_ATTK, NO_ATTK,
  1511.         NO_ATTK, NO_ATTK, NO_ATTK },
  1512.       650, 50, 0, MS_SILENT, MZ_SMALL,
  1513.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1514.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1515.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(BROWN) },
  1516.     { "orc zombie", S_ZOMBIE, 2, 6, 9, 0, -3,
  1517.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1518.       { { AT_CLAW, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  1519.         NO_ATTK, NO_ATTK, NO_ATTK },
  1520.       850, 75, 0, MS_SILENT, MZ_HUMAN,
  1521.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1522.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_POIS,
  1523.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ORC, 0, C(GRAY) },
  1524.     { "elf zombie", S_ZOMBIE, 3, 6, 9, 0, -3,
  1525.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1526.       { { AT_CLAW, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK,
  1527.         NO_ATTK, NO_ATTK, NO_ATTK },
  1528.       WT_ELF, 175, 0, MS_SILENT, MZ_HUMAN,
  1529.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1530.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1531.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_ELF, 0, C(GREEN) },
  1532.     { "human zombie", S_ZOMBIE, 4, 6, 8, 0, -3,
  1533.       (G_GENO | G_SGROUP | G_NOCORPSE | 1),
  1534.       { { AT_CLAW, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1535.         NO_ATTK, NO_ATTK, NO_ATTK },
  1536.       WT_HUMAN, 200, 0, MS_SILENT, MZ_HUMAN,
  1537.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1538.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1539.       M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(HI_DOMESTIC) },
  1540.     { "ettin zombie", S_ZOMBIE, 6, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  1541.       { { AT_CLAW, AD_PHYS, 1, 10 }, { AT_CLAW, AD_PHYS, 1, 10 },
  1542.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1543.       1700, 250, 0, MS_SILENT, MZ_HUGE,
  1544.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1545.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1546.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_STRONG, 0, C(BLUE) },
  1547.     { "giant zombie", S_ZOMBIE, 8, 8, 6, 0, -4, (G_GENO | G_NOCORPSE | 1),
  1548.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1549.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1550.       2050, 375, 0, MS_SILENT, MZ_HUGE,
  1551.       MR_COLD | MR_SLEEP | MR_POISON, 0,
  1552.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1553.       M2_UNDEAD | M2_STALK | M2_HOSTILE | M2_GIANT | M2_STRONG,
  1554.       0, C(CYAN) },
  1555.     { "skeleton", S_ZOMBIE, 12, 8, 4, 0, 0, (G_NOCORPSE | G_NOGEN),
  1556.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_TUCH, AD_SLOW, 1, 6},
  1557.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1558.       300, 5, 0, MS_BONES, MZ_HUMAN,
  1559.       MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1560.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1561.       M2_UNDEAD | M2_WANDER | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  1562.       0, C(WHITE) },
  1563. /*    Golems    */
  1564.     { "straw golem", S_GOLEM, 3, 12, 10, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1565.       { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 },
  1566.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1567.       400, 0, 0, MS_SILENT, MZ_LARGE,
  1568.       MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1569.       M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
  1570.     { "rope golem", S_GOLEM, 4, 9, 8, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1571.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_HUGS, AD_PHYS, 6, 1 },
  1572.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1573.       450, 0, 0, MS_SILENT, MZ_LARGE,
  1574.       MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1575.       M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
  1576.     { "leather golem", S_GOLEM, 6, 6, 6, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1577.       { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 },
  1578.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1579.       800, 0, 0, MS_SILENT, MZ_LARGE,
  1580.       MR_SLEEP | MR_POISON, 0, M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1581.       M2_HOSTILE | M2_NEUTER, 0, C(HI_LEATHER) },
  1582.     { "wood golem", S_GOLEM, 7, 3, 4, 0, 0, (G_GENO | G_NOCORPSE | 1),
  1583.       { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK,
  1584.         NO_ATTK, NO_ATTK, NO_ATTK },
  1585.       900, 0, 0, MS_SILENT, MZ_LARGE,
  1586.       MR_SLEEP | MR_POISON, 0,
  1587.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1588.       M2_HOSTILE | M2_NEUTER, 0, C(HI_WOOD) },
  1589.     { "flesh golem", S_GOLEM, 9, 8, 9, 30, 0, (G_GENO | 1),
  1590.       { { AT_CLAW, AD_PHYS, 2, 8 }, { AT_CLAW, AD_PHYS, 2, 8 },
  1591.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1592.       1400, 600, 0, MS_SILENT, MZ_LARGE,
  1593.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON,
  1594.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON,
  1595.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID,
  1596.       M2_HOSTILE | M2_STRONG, 0, C(RED) },
  1597.     { "clay golem", S_GOLEM, 11, 7, 7, 40, 0, (G_GENO | G_NOCORPSE | 1),
  1598.       { { AT_CLAW, AD_PHYS, 3, 10 }, NO_ATTK, NO_ATTK,
  1599.         NO_ATTK, NO_ATTK, NO_ATTK },
  1600.       1550, 0, 0, MS_SILENT, MZ_LARGE,
  1601.       MR_SLEEP | MR_POISON, 0,
  1602.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1603.       M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
  1604.     { "stone golem", S_GOLEM, 14, 6, 5, 50, 0, (G_GENO | G_NOCORPSE | 1),
  1605.       { { AT_CLAW, AD_PHYS, 3, 8 }, NO_ATTK, NO_ATTK,
  1606.         NO_ATTK, NO_ATTK, NO_ATTK },
  1607.       1900, 0, 0, MS_SILENT, MZ_LARGE,
  1608.       MR_SLEEP | MR_POISON | MR_STONE, 0,
  1609.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
  1610.       M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
  1611.     { "iron golem", S_GOLEM, 18, 6, 3, 60, 0, (G_GENO | G_NOCORPSE | 1),
  1612.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_BREA, AD_DRST, 4, 6 },
  1613.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1614.       2000, 0, 0, MS_SILENT, MZ_LARGE,
  1615.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
  1616.       M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE | M1_POIS,
  1617.       M2_HOSTILE | M2_STRONG | M2_COLLECT, 0, C(HI_METAL) },
  1618. /*    Humans        */
  1619.     { "human", S_HUMAN, 0, 12, 10, 0, 0, G_NOGEN, /* for corpses */
  1620.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK,
  1621.         NO_ATTK, NO_ATTK, NO_ATTK },
  1622.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  1623.       M1_HUMANOID | M1_OMNIVORE,
  1624.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  1625.       0, C(HI_DOMESTIC) },
  1626.     { "wererat", S_HUMAN, 2, 12, MARM(10,7), 10, -7, 1,
  1627.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1628.         NO_ATTK, NO_ATTK, NO_ATTK },
  1629.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN, MR_POISON, 0,
  1630.       M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  1631.       M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT, 0, C(BROWN) },
  1632.     { "werejackal", S_HUMAN, 2, 12, MARM(10,7), 10, -7, 1,
  1633.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1634.         NO_ATTK, NO_ATTK, NO_ATTK },
  1635.       WT_HUMAN, 400, 0, MS_BARK, MZ_HUMAN, MR_POISON, 0,
  1636.       M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  1637.       M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT, 0, C(RED) },
  1638.     { "werewolf", S_HUMAN, 5, 12, MARM(10,6), 20, -7, 1,
  1639.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1640.         NO_ATTK, NO_ATTK, NO_ATTK },
  1641.       WT_HUMAN, 400, 0, MS_BARK, MZ_HUMAN, MR_POISON, 0,
  1642.       M1_HUMANOID | M1_POIS | M1_REGEN | M1_OMNIVORE,
  1643.       M2_NOPOLY | M2_WERE | M2_HOSTILE | M2_HUMAN | M2_COLLECT,
  1644.       0, C(ORANGE_COLORED) },
  1645.     { "Woodland-elf", S_HUMAN, 4, 12, MARM(10,5), 10, -5,
  1646.       (G_GENO | G_SGROUP | 2),
  1647.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1648.         NO_ATTK, NO_ATTK, NO_ATTK },
  1649.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1650.       M1_HUMANOID | M1_OMNIVORE, M2_ELF | M2_COLLECT, 0, C(GREEN) },
  1651.     { "Green-elf", S_HUMAN, 5, 12, MARM(10,5), 10, -6,
  1652.       (G_GENO | G_SGROUP | 2),
  1653.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1654.         NO_ATTK, NO_ATTK, NO_ATTK },
  1655.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1656.       M1_HUMANOID | M1_OMNIVORE, M2_ELF | M2_COLLECT, 0, C(BRIGHT_GREEN) },
  1657.     { "Grey-elf", S_HUMAN, 6, 12, MARM(10,5), 10, -7,
  1658.       (G_GENO | G_SGROUP | 2),
  1659.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  1660.         NO_ATTK, NO_ATTK, NO_ATTK },
  1661.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1662.       M1_HUMANOID | M1_OMNIVORE, M2_ELF | M2_COLLECT, 0, C(GRAY) },
  1663.     { "elf-lord", S_HUMAN, 8, 12, MARM(10,5), 20, -9,
  1664.       (G_GENO | G_SGROUP | 2),
  1665.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1666.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1667.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  1668.       M1_HUMANOID | M1_OMNIVORE,
  1669.       M2_ELF | M2_STRONG | M2_LORD | M2_MALE | M2_COLLECT,
  1670.       0, C(BRIGHT_BLUE) },
  1671.     { "Elvenking", S_HUMAN, 9, 12, MARM(10,5), 25, -10, (G_GENO | 1),
  1672.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4},
  1673.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1674.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN,
  1675.       MR_SLEEP, MR_SLEEP, M1_HUMANOID | M1_OMNIVORE,
  1676.       M2_ELF | M2_STRONG | M2_PRINCE | M2_MALE | M2_COLLECT, 0,
  1677.       C(HI_LORD) },
  1678.     { "nurse", S_HUMAN, 11, 6, 0, 0, 0, (G_GENO | 3),
  1679.       { { AT_CLAW, AD_HEAL, 2, 6 }, NO_ATTK, NO_ATTK,
  1680.         NO_ATTK, NO_ATTK, NO_ATTK },
  1681.       WT_HUMAN, 400, 0, MS_NURSE, MZ_HUMAN, MR_POISON, MR_POISON,
  1682.       M1_HUMANOID | M1_OMNIVORE, M2_NOPOLY | M2_HUMAN | M2_HOSTILE,
  1683.       0, C(HI_DOMESTIC) },
  1684.     { "shopkeeper", S_HUMAN, 12, 18, 0, 50, 0, G_NOGEN,
  1685.       { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
  1686.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1687.       WT_HUMAN, 400, sizeof(struct eshk), MS_SELL, MZ_HUMAN, 0, 0,
  1688.       M1_HUMANOID | M1_OMNIVORE,
  1689.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  1690.       M2_COLLECT | M2_MAGIC,
  1691.       0, C(HI_DOMESTIC) },
  1692.     { "guard", S_HUMAN, 12, 12, MARM(10,-1), 40, 10, G_NOGEN,
  1693.       { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK,
  1694.         NO_ATTK, NO_ATTK, NO_ATTK },
  1695.       WT_HUMAN, 400, sizeof(struct egd), MS_GUARD, MZ_HUMAN,
  1696.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1697.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  1698.       0, C(BLUE) },
  1699.     { "oracle", S_HUMAN, 12, 0, 0, 50, 0, G_NOGEN | G_UNIQ,
  1700.       { { AT_NONE, AD_MAGM, 0, 4 }, NO_ATTK, NO_ATTK,
  1701.         NO_ATTK, NO_ATTK, NO_ATTK },
  1702.       WT_HUMAN, 400, 0, MS_ORACLE, MZ_HUMAN, 0, 0,
  1703.       M1_HUMANOID | M1_OMNIVORE,
  1704.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_FEMALE, 0, C(HI_ZAP) },
  1705.     { "aligned priest", S_HUMAN, 12, 12, MARM(10,0), 50, 0, G_NOGEN,
  1706.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 1, 4 },
  1707.         { AT_MAGC, AD_CLRC, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1708.       WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
  1709.       MR_ELEC, MR_ELEC, M1_HUMANOID | M1_OMNIVORE,
  1710.       M2_NOPOLY | M2_HUMAN | M2_LORD | M2_PEACEFUL | M2_COLLECT,
  1711.       0, C(WHITE) },
  1712.     { "high priest", S_HUMAN, 25, 15, MARM(7,-3), 70, 0,
  1713.        (G_NOGEN | G_UNIQ),
  1714.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 2, 8 },
  1715.         { AT_MAGC, AD_CLRC, 2, 8 }, { AT_MAGC, AD_CLRC, 2, 8 },
  1716.         NO_ATTK, NO_ATTK },
  1717.       WT_HUMAN, 400, sizeof(struct epri), MS_PRIEST, MZ_HUMAN,
  1718.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  1719.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  1720.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  1721.       M2_NOPOLY | M2_HUMAN | M2_MINION | M2_PRINCE | M2_NASTY |
  1722.       M2_COLLECT | M2_MAGIC, 0, C(WHITE) },
  1723. #ifndef MUSE
  1724.     { "unarmored watchman", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
  1725.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1726.         NO_ATTK, NO_ATTK, NO_ATTK },
  1727.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1728.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1729.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_PEACEFUL | M2_STRONG |
  1730.       M2_COLLECT, 0, C(BROWN) },
  1731. #endif
  1732. #ifdef ARMY
  1733. # ifndef MUSE
  1734.     { "unarmored soldier", S_HUMAN, 6, 4, 10, 0, -2, G_NOGEN,
  1735.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1736.         NO_ATTK, NO_ATTK, NO_ATTK },
  1737.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1738.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1739.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1740.       M2_COLLECT, 0, C(BROWN) },
  1741. # endif
  1742.     { "soldier", S_HUMAN, 6, 4, MARM(10,3), 0, -2, (G_SGROUP | G_GENO | 1),
  1743.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1744.         NO_ATTK, NO_ATTK, NO_ATTK },
  1745.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1746.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1747.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1748.       M2_COLLECT, 0, C(GRAY) },
  1749.     { "sergeant", S_HUMAN, 8, 4, MARM(10,0), 5, -3, (G_SGROUP | G_GENO | 1),
  1750.       { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
  1751.         NO_ATTK, NO_ATTK, NO_ATTK },
  1752.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1753.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1754.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1755.       M2_COLLECT, 0, C(RED) },
  1756.     { "lieutenant", S_HUMAN, 10, 4, MARM(10,-2), 15, -4, (G_GENO | 1),
  1757.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
  1758.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1759.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1760.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1761.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1762.       M2_COLLECT, 0, C(GREEN) },
  1763.     { "captain", S_HUMAN, 12, 4, MARM(10,-3), 15, -5, (G_GENO | 1),
  1764.       { { AT_WEAP, AD_PHYS, 4, 4 }, { AT_WEAP, AD_PHYS, 4, 4 },
  1765.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1766.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1767.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1768.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_HOSTILE | M2_STRONG |
  1769.       M2_COLLECT, 0, C(BLUE) },
  1770. #endif
  1771. /*
  1772.  *    Keep these separate - some of the mkroom code assumes that all
  1773.  *    the soldiers are contiguous.
  1774.  */
  1775.     { "watchman", S_HUMAN, 6, 4, MARM(10,3), 0, -2, (G_SGROUP | G_NOGEN | G_GENO | 1),
  1776.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  1777.         NO_ATTK, NO_ATTK, NO_ATTK },
  1778.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1779.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1780.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_PEACEFUL | M2_STRONG |
  1781.       M2_COLLECT, 0, C(GRAY) },
  1782.     { "watch captain", S_HUMAN, 10, 4, MARM(10,-2), 15, -4, (G_NOGEN | G_GENO | 1),
  1783.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_WEAP, AD_PHYS, 3, 4 },
  1784.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1785.       WT_HUMAN, 400, 0, MS_SOLDIER, MZ_HUMAN,
  1786.       0, 0, M1_HUMANOID | M1_OMNIVORE,
  1787.       M2_NOPOLY | M2_HUMAN | M2_MERC | M2_STALK | M2_PEACEFUL | M2_STRONG |
  1788.       M2_COLLECT, 0, C(GREEN) },
  1789.     { "Medusa", S_HUMAN, 20, 12, 2, 50, -15, G_NOGEN | G_UNIQ,
  1790.       { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_GAZE, AD_STON, 0, 0 },
  1791.         { AT_BITE, AD_DRST, 1, 6 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1792.         NO_ATTK, NO_ATTK },
  1793.       WT_HUMAN, 400, 0, MS_HISS, MZ_LARGE,
  1794.       MR_POISON | MR_STONE, MR_POISON | MR_STONE, M1_SWIM |
  1795.       M1_AMPHIBIOUS | M1_HUMANOID | M1_SLITHY | M1_POIS | M1_OMNIVORE,
  1796.       M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_FEMALE,
  1797.       0, C(BRIGHT_GREEN) },
  1798.     { "Wizard of Yendor", S_HUMAN, 30, 12, -8, 100, A_NONE, G_NOGEN,
  1799.       { { AT_CLAW, AD_SAMU, 2, 12 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1800.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1801.       WT_HUMAN, 400, 0, MS_CUSS, MZ_HUMAN,
  1802.       MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
  1803.       M1_FLY | M1_BREATHLESS | M1_HUMANOID | M1_REGEN | M1_SEE_INVIS |
  1804.       M1_TPORT | M1_TPORT_CNTRL | M1_OMNIVORE,
  1805.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_NASTY |
  1806.       M2_PRINCE | M2_MALE | M2_MAGIC,
  1807.       M3_COVETOUS | M3_WAITFORU, C(HI_LORD) },
  1808. #ifdef MULDGN
  1809.     { "Croesus", S_HUMAN, 20, 15, 0, 40, 15, (G_UNIQ | G_NOGEN),
  1810.       { { AT_WEAP, AD_PHYS, 4, 10 }, NO_ATTK, NO_ATTK,
  1811.         NO_ATTK, NO_ATTK, NO_ATTK },
  1812.       WT_HUMAN, 400, 0, MS_GUARD, MZ_HUMAN,
  1813.       MR_STONE, MR_STONE, M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  1814.       M2_NOPOLY | M2_HUMAN | M2_STALK | M2_PEACEFUL | M2_STRONG | M2_NASTY |
  1815.       M2_PNAME | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT |
  1816.       M2_MAGIC, 0, C(HI_LORD) },
  1817. #endif
  1818. #ifdef CHARON
  1819.     { "Charon", S_HUMAN, 76, 18, -5, 120, 0,
  1820.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1821.       { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 },
  1822.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1823.       WT_HUMAN, 400, 0, MS_FERRY, MZ_HUMAN,
  1824.       MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
  1825.       M1_BREATHLESS | M1_SEE_INVIS | M1_HUMANOID,
  1826.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_PNAME | M2_MALE | M2_GREEDY |
  1827.       M2_COLLECT,
  1828.       0, C(WHITE) },
  1829. #endif
  1830. /*    Ghosts        */
  1831.     { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN),
  1832.       { { AT_TUCH, AD_PHYS, 1, 1 }, NO_ATTK, NO_ATTK,
  1833.         NO_ATTK, NO_ATTK, NO_ATTK },
  1834.       WT_HUMAN, 0, PL_NSIZ, MS_SILENT, MZ_HUMAN,
  1835.       MR_COLD | MR_DISINT | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1836.       M1_FLY | M1_BREATHLESS | M1_WALLWALK | M1_HUMANOID | M1_UNSOLID,
  1837.       M2_NOPOLY | M2_UNDEAD | M2_STALK | M2_HOSTILE, 0, C(GRAY) },
  1838.     { "shade", S_GHOST, 12, 10, 10, 0, 0, (G_NOCORPSE | G_NOGEN),
  1839.       { { AT_TUCH, AD_PLYS, 2, 6 }, { AT_TUCH, AD_SLOW, 1, 6},
  1840.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1841.       WT_HUMAN, 0, 0, MS_WAIL, MZ_HUMAN,
  1842.       MR_COLD | MR_DISINT | MR_SLEEP | MR_POISON | MR_STONE, 0,
  1843.       M1_FLY | M1_BREATHLESS | M1_WALLWALK | M1_HUMANOID | M1_UNSOLID |
  1844.       M1_SEE_INVIS,
  1845.       M2_NOPOLY | M2_UNDEAD | M2_WANDER | M2_STALK | M2_HOSTILE,
  1846.       0, C(BLACK) },
  1847. /*    (major) Demons    */
  1848.     { "water demon", S_DEMON, 8, 12,-4, 30, -7, (G_NOCORPSE | G_NOGEN),
  1849.       { { AT_WEAP, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1850.         { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1851.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1852.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS | M1_SWIM,
  1853.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  1854.       0, C(BLUE) },
  1855.     /* standard demons & devils */
  1856.     { "horned devil", S_DEMON, 6, 9, -5, 50, 11, (G_HELL | G_NOCORPSE | 2),
  1857.       { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1858.         { AT_BITE, AD_PHYS, 2, 3 }, { AT_STNG, AD_PHYS, 1, 3 },
  1859.         NO_ATTK, NO_ATTK },
  1860.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1861.       MR_FIRE | MR_POISON, 0, M1_POIS | M1_THICK_HIDE,
  1862.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(BROWN) },
  1863. #ifdef SEDUCE
  1864.     { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1865.       { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1866.         { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK,
  1867.         NO_ATTK, NO_ATTK },
  1868.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1869.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  1870.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE, 0, C(GRAY) },
  1871.     { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1872.       { { AT_BITE, AD_SSEX, 0, 0 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1873.         { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1874.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1875.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  1876.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_MALE, 0, C(GRAY) },
  1877. #else
  1878.     { "succubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1879.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1880.         { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1881.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1882.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY,
  1883.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE, 0, C(GRAY) },
  1884.     { "incubus", S_DEMON, 6, 12, 0, 70, -9, (G_NOCORPSE | 1),
  1885.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1886.         { AT_BITE, AD_DRLI, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1887.       WT_HUMAN, 400, 0, MS_SEDUCE, MZ_HUMAN,
  1888.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_FLY | M1_POIS,
  1889.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_MALE, 0, C(GRAY) },
  1890. #endif
  1891.     { "erinyes", S_DEMON, 7, 12, 2, 30, 10,
  1892.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1893.       { { AT_WEAP, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK,
  1894.         NO_ATTK, NO_ATTK, NO_ATTK },
  1895.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1896.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS,
  1897.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_FEMALE |
  1898.       M2_COLLECT, 0, C(RED) },
  1899.     { "barbed devil", S_DEMON, 8, 12, 0, 35, 8,
  1900.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1901.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  1902.         { AT_STNG, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1903.       WT_HUMAN, 400, 0, MS_SILENT, MZ_HUMAN,
  1904.       MR_FIRE | MR_POISON, 0, M1_POIS | M1_THICK_HIDE,
  1905.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1906.     { "marilith", S_DEMON, 7, 12, -6, 80, -12, (G_HELL | G_NOCORPSE | 1),
  1907.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1908.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 },
  1909.         { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 } },
  1910.       WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE,
  1911.       MR_FIRE | MR_POISON, 0,
  1912.       M1_HUMANOID | M1_SLITHY | M1_SEE_INVIS | M1_POIS,
  1913.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_FEMALE | M2_COLLECT,
  1914.       0, C(RED) },
  1915.     { "vrock", S_DEMON, 8, 12, 0, 50, -9,
  1916.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1917.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1918.         { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 },
  1919.         { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK },
  1920.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1921.       MR_FIRE | MR_POISON, 0, M1_POIS,
  1922.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1923.     { "hezrou", S_DEMON, 9, 6, -2, 55, -10,
  1924.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1925.       { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 },
  1926.         { AT_BITE, AD_PHYS, 4, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1927.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1928.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS,
  1929.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1930.     { "bone devil", S_DEMON, 9, 15, -1, 40, -9,
  1931.       (G_HELL | G_NOCORPSE | G_SGROUP | 2),
  1932.       { { AT_WEAP, AD_PHYS, 3, 4 }, { AT_STNG, AD_DRST, 2, 4 },
  1933.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1934.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1935.       MR_FIRE | MR_POISON, 0, M1_POIS,
  1936.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT,
  1937.       0, C(GRAY) },
  1938.     { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2),
  1939.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1940.         { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 },
  1941.         NO_ATTK, NO_ATTK },
  1942.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1943.       MR_FIRE | MR_COLD | MR_POISON, 0, M1_SEE_INVIS | M1_POIS,
  1944.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(WHITE) },
  1945.     { "nalfeshnee", S_DEMON, 11, 9, -1, 65, -11, (G_HELL | G_NOCORPSE | 1),
  1946.       { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
  1947.         { AT_BITE, AD_PHYS, 2, 4 }, { AT_MAGC, AD_SPEL, 0, 0 },
  1948.         NO_ATTK, NO_ATTK },
  1949.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1950.       MR_FIRE | MR_POISON, 0, M1_HUMANOID | M1_POIS,
  1951.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY, 0, C(RED) },
  1952.     { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2),
  1953.       { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 },
  1954.         { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  1955.       WT_HUMAN, 400, 0, MS_GROWL, MZ_LARGE,
  1956.       MR_FIRE | MR_POISON, 0, M1_SEE_INVIS | M1_POIS,
  1957.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_NASTY | M2_COLLECT, 0, C(RED) },
  1958.     { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1),
  1959.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  1960.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1961.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE,
  1962.       MR_FIRE | MR_POISON, 0, M1_FLY | M1_SEE_INVIS | M1_POIS,
  1963.       M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY | M2_COLLECT,
  1964.       0, C(RED) },
  1965.     /* Named demon lords & princes plus Arch-Devils */
  1966.     { "Juiblex", S_DEMON, 50, 3, -7, 65, -15,
  1967.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1968.       { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 },
  1969.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  1970.       1500, 0, 0, MS_GURGLE, MZ_LARGE,
  1971.       MR_FIRE | MR_POISON | MR_ACID | MR_STONE, 0,
  1972.       M1_AMPHIBIOUS | M1_AMORPHOUS | M1_NOHEAD | M1_FLY | M1_SEE_INVIS |
  1973.       M1_ACID | M1_POIS,
  1974.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY |
  1975.       M2_LORD | M2_MALE,
  1976.       M3_WANTSAMUL, C(BRIGHT_GREEN) },
  1977.     { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15,
  1978.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1979.       { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 },
  1980.         { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 },
  1981.         NO_ATTK, NO_ATTK },
  1982.       900, 500, 0, MS_ORC, MZ_LARGE, MR_FIRE | MR_POISON, 0,
  1983.       M1_FLY | M1_SEE_INVIS | M1_POIS, M2_NOPOLY | M2_DEMON | M2_STALK |
  1984.       M2_HOSTILE | M2_PNAME | M2_NASTY | M2_LORD | M2_MALE | M2_COLLECT,
  1985.       M3_WANTSAMUL, C(HI_LORD) },
  1986.     { "Orcus", S_DEMON, 66, 9, -6, 85, -20,
  1987.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1988.       { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 },
  1989.         { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 },
  1990.         { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK },
  1991.       1500, 500, 0, MS_ORC, MZ_HUGE,
  1992.       MR_FIRE | MR_POISON, 0,
  1993.       M1_FLY | M1_SEE_INVIS | M1_POIS, M2_NOPOLY | M2_DEMON | M2_STALK |
  1994.       M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE | M2_COLLECT,
  1995.       M3_WANTSBOOK | M3_WANTSAMUL, C(HI_LORD) },
  1996.     { "Geryon", S_DEMON, 72, 3, -3, 75, 15,
  1997.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  1998.       { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 },
  1999.         { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2000.       1500, 500, 0, MS_BRIBE, MZ_HUGE,
  2001.       MR_FIRE | MR_POISON, 0,
  2002.       M1_FLY | M1_SEE_INVIS | M1_POIS | M1_SLITHY, M2_NOPOLY | M2_DEMON |
  2003.       M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE,
  2004.       M3_WANTSAMUL, C(HI_LORD) },
  2005.     { "Dispater", S_DEMON, 78, 15, -2, 80, 15,
  2006.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2007.       { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 },
  2008.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2009.       1500, 500, 0, MS_BRIBE, MZ_HUMAN,
  2010.       MR_FIRE | MR_POISON, 0, M1_FLY | M1_SEE_INVIS | M1_POIS |
  2011.       M1_HUMANOID, M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE |
  2012.       M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE | M2_COLLECT,
  2013.       M3_WANTSAMUL, C(HI_LORD) },
  2014.     { "Baalzebub", S_DEMON, 89, 9, -5, 85, 20,
  2015.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2016.       { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 },
  2017.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2018.       1500, 500, 0, MS_BRIBE, MZ_LARGE,
  2019.       MR_FIRE | MR_POISON, 0, M1_FLY | M1_SEE_INVIS | M1_POIS,
  2020.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY |
  2021.       M2_PRINCE | M2_MALE, M3_WANTSAMUL | M3_WAITFORU, C(HI_LORD) },
  2022.     { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20,
  2023.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2024.       { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 },
  2025.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2026.       1500, 500, 0, MS_BRIBE, MZ_HUGE,
  2027.       MR_FIRE | MR_COLD | MR_POISON, 0,
  2028.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS,
  2029.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG |
  2030.       M2_NASTY | M2_PRINCE | M2_MALE, M3_WANTSAMUL | M3_WAITFORU,
  2031.       C(HI_LORD) },
  2032.     { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20,
  2033.       (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ),
  2034.       { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 },
  2035.         { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 },
  2036.         NO_ATTK, NO_ATTK },
  2037.       1500, 500, 0, MS_GROWL, MZ_HUGE, MR_FIRE | MR_POISON, 0,
  2038.       M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS, M2_NOPOLY | M2_DEMON |
  2039.       M2_STALK | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_PRINCE | M2_MALE,
  2040.       M3_WANTSAMUL, C(HI_LORD) },
  2041.     { "Death", S_DEMON, 20, 3, 4, 95, 0, (G_UNIQ | G_NOGEN),
  2042.       { { AT_TUCH, AD_DETH, 8, 8 }, { AT_TUCH, AD_DETH, 8, 8 },
  2043.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2044.       WT_HUMAN, 0, 0, MS_DEATH, MZ_HUMAN,
  2045.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2046.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2047.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_REGEN,
  2048.       M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  2049.       0, C(HI_LORD) },
  2050.     { "Pestilence", S_DEMON, 20, 3, 4, 95, 0, (G_UNIQ | G_NOGEN),
  2051.       { { AT_TUCH, AD_PEST, 8, 8 }, { AT_TUCH, AD_PEST, 8, 8 },
  2052.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2053.       WT_HUMAN, 0, 0, MS_PESTILENCE, MZ_HUMAN,
  2054.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2055.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2056.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_REGEN,
  2057.       M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  2058.       0, C(HI_LORD) },
  2059.     { "Famine", S_DEMON, 20, 3, 4, 95, 0, (G_UNIQ | G_NOGEN),
  2060.       { { AT_TUCH, AD_FAMN, 8, 8 }, { AT_TUCH, AD_FAMN, 8, 8 },
  2061.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2062.       WT_HUMAN, 0, 0, MS_FAMINE, MZ_HUMAN,
  2063.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2064.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE,
  2065.       M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_REGEN,
  2066.       M2_NOPOLY | M2_STALK | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY,
  2067.       0, C(HI_LORD) },
  2068. #ifdef MAIL
  2069.     { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
  2070.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2071.       600, 300, 0, MS_SILENT, MZ_HUMAN,
  2072.       MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_STONE, 0,
  2073.       M1_FLY | M1_SWIM | M1_BREATHLESS | M1_SEE_INVIS | M1_HUMANOID |
  2074.       M1_POIS, M2_NOPOLY | M2_STALK | M2_PEACEFUL, 0, C(BRIGHT_BLUE) },
  2075. /* Neither rain nor sleet nor gloom of night shall stay this courier... */
  2076. #endif
  2077.     { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE),
  2078.       { { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
  2079.         NO_ATTK, NO_ATTK, NO_ATTK },
  2080.       1500, 400, 0, MS_DJINNI, MZ_HUMAN, MR_POISON | MR_STONE, 0,
  2081.       M1_HUMANOID | M1_FLY | M1_POIS,
  2082.       M2_NOPOLY | M2_STALK | M2_COLLECT, 0, C(YELLOW) },
  2083. /*    sea monsters        */
  2084.     { "giant eel", S_EEL, 5, 9, -1, 0, 0, (G_GENO | G_NOGEN),
  2085.       { { AT_BITE, AD_PHYS, 3, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  2086.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2087.       200, 250, 0, MS_SILENT, MZ_HUGE,
  2088.       0, 0, M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY |
  2089.       M1_NOLIMBS | M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(CYAN) },
  2090.     { "electric eel", S_EEL, 7, 10, -3, 0, 0, (G_GENO | G_NOGEN),
  2091.       { { AT_BITE, AD_ELEC, 4, 6 }, { AT_TUCH, AD_WRAP, 0, 0 },
  2092.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2093.       200, 250, 0, MS_SILENT, MZ_HUGE, MR_ELEC, MR_ELEC,
  2094.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_SLITHY | M1_NOLIMBS |
  2095.       M1_CARNIVORE | M1_OVIPAROUS, M2_HOSTILE, 0, C(BLUE) },
  2096.     { "kraken", S_EEL, 20, 3, 6, 0, -3, (G_GENO | G_NOGEN),
  2097.       { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
  2098.         { AT_HUGS, AD_WRAP, 2, 6 }, { AT_BITE, AD_PHYS, 5, 4 },
  2099.         NO_ATTK, NO_ATTK },
  2100.       1800, 1000, 0, MS_SILENT, MZ_HUGE, 0, 0,
  2101.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2102.       M2_NOPOLY | M2_HOSTILE | M2_STRONG, 0, C(RED) },
  2103. /*    lizards     */
  2104.     { "newt", S_LIZARD, 0, 6, 8, 0, 0, (G_GENO | 5),
  2105.       { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK,
  2106.         NO_ATTK, NO_ATTK, NO_ATTK },
  2107.       10, 20, 0, MS_SILENT, MZ_TINY, 0, 0,
  2108.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2109.       M2_HOSTILE, 0, C(YELLOW) },
  2110.     { "gecko", S_LIZARD, 1, 6, 8, 0, 0, (G_GENO | 5),
  2111.       { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
  2112.         NO_ATTK, NO_ATTK, NO_ATTK },
  2113.       10, 20, 0, MS_SQEEK, MZ_TINY, 0, 0,
  2114.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GREEN) },
  2115.     { "iguana", S_LIZARD, 2, 6, 7, 0, 0, (G_GENO | 5),
  2116.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  2117.         NO_ATTK, NO_ATTK, NO_ATTK },
  2118.       30, 30, 0, MS_SILENT, MZ_TINY, 0, 0,
  2119.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
  2120.     { "baby crocodile", S_LIZARD, 3, 6, 7, 0, 0, G_GENO,
  2121.       { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
  2122.         NO_ATTK, NO_ATTK, NO_ATTK },
  2123.       200, 200, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
  2124.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2125.       M2_HOSTILE, 0, C(BROWN) },
  2126.     { "lizard", S_LIZARD, 5, 6, 6, 10, 0, (G_GENO | 5),
  2127.       { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2128.         NO_ATTK, NO_ATTK, NO_ATTK },
  2129.       10, 40, 0, MS_SILENT, MZ_TINY, MR_STONE, MR_STONE,
  2130.       M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GREEN) },
  2131.     { "chameleon", S_LIZARD, 6, 5, 6, 10, 0, (G_GENO | 2),
  2132.       { { AT_BITE, AD_PHYS, 4, 2 }, NO_ATTK, NO_ATTK,
  2133.         NO_ATTK, NO_ATTK, NO_ATTK },
  2134.       100, 100, 0, MS_SILENT, MZ_TINY,
  2135.       0, 0, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
  2136.       M2_NOPOLY | M2_HOSTILE, 0, C(BROWN) },
  2137.     { "crocodile", S_LIZARD, 6, 9, 5, 0, 0, (G_GENO | 1),
  2138.       { { AT_BITE, AD_PHYS, 4, 2 }, { AT_CLAW, AD_PHYS, 1, 12 },
  2139.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2140.       WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE, 0, 0,
  2141.       M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS |
  2142.       M1_OVIPAROUS | M1_CARNIVORE, M2_STRONG | M2_HOSTILE, 0, C(BROWN) },
  2143.  
  2144. /*    character classes */
  2145.     { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  2146.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2147.         NO_ATTK, NO_ATTK, NO_ATTK },
  2148.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2149.       M1_HUMANOID | M1_TUNNEL | M1_NEEDPICK | M1_OMNIVORE,
  2150.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2151.     { "barbarian", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  2152.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2153.         NO_ATTK, NO_ATTK, NO_ATTK },
  2154.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, MR_POISON, MR_POISON,
  2155.       M1_HUMANOID | M1_OMNIVORE,
  2156.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2157.     { "caveman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  2158.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2159.         NO_ATTK, NO_ATTK, NO_ATTK },
  2160.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2161.       M1_HUMANOID | M1_OMNIVORE,
  2162.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_COLLECT, 0, C(RED) },
  2163.     { "cavewoman", S_HUMAN, 1, 10, 10, 0, 1, G_NOGEN,
  2164.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2165.         NO_ATTK, NO_ATTK, NO_ATTK },
  2166.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2167.       M1_HUMANOID | M1_OMNIVORE,
  2168.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  2169.       0, C(HI_DOMESTIC) },
  2170.     /* Note: players who are elves still get normal carrying capacity,
  2171.      * even though this is strictly speaking inconsistent.
  2172.      */
  2173.     { "elf", S_HUMAN, 1, 12, 10, 2, -3, G_NOGEN,
  2174.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2175.         NO_ATTK, NO_ATTK, NO_ATTK },
  2176.       WT_ELF, 350, 0, MS_HUMANOID, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2177.       M1_HUMANOID | M1_OMNIVORE | M1_SEE_INVIS,
  2178.       M2_NOPOLY | M2_ELF | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2179.     { "healer", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  2180.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2181.         NO_ATTK, NO_ATTK, NO_ATTK },
  2182.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, MR_POISON, MR_POISON,
  2183.       M1_HUMANOID | M1_OMNIVORE,
  2184.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2185.     { "knight", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  2186.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2187.         NO_ATTK, NO_ATTK, NO_ATTK },
  2188.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2189.       M1_HUMANOID | M1_OMNIVORE,
  2190.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2191.     { "priest", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  2192.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2193.         NO_ATTK, NO_ATTK, NO_ATTK },
  2194.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2195.       M1_HUMANOID | M1_OMNIVORE,
  2196.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_MALE | M2_COLLECT,
  2197.       0, C(HI_DOMESTIC) },
  2198.     { "priestess", S_HUMAN, 1, 10, 10, 2, 0, G_NOGEN,
  2199.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2200.         NO_ATTK, NO_ATTK, NO_ATTK },
  2201.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2202.       M1_HUMANOID | M1_OMNIVORE,
  2203.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  2204.       0, C(HI_DOMESTIC) },
  2205.     { "rogue", S_HUMAN, 1, 10, 10, 1, -3, G_NOGEN,
  2206.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2207.         NO_ATTK, NO_ATTK, NO_ATTK },
  2208.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2209.       M1_HUMANOID | M1_OMNIVORE,
  2210.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
  2211.       0, C(HI_DOMESTIC) },
  2212.     { "samurai", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
  2213.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2214.         NO_ATTK, NO_ATTK, NO_ATTK },
  2215.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2216.       M1_HUMANOID | M1_OMNIVORE,
  2217.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2218. #ifdef TOURIST
  2219.     { "tourist", S_HUMAN, 1, 10, 10, 1, 0, G_NOGEN,
  2220.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2221.         NO_ATTK, NO_ATTK, NO_ATTK },
  2222.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2223.       M1_HUMANOID | M1_OMNIVORE,
  2224.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2225. #endif
  2226.     { "valkyrie", S_HUMAN, 1, 10, 10, 1, -1, G_NOGEN,
  2227.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2228.         NO_ATTK, NO_ATTK, NO_ATTK },
  2229.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, MR_COLD, MR_COLD,
  2230.       M1_HUMANOID | M1_OMNIVORE,
  2231.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_FEMALE | M2_COLLECT,
  2232.       0, C(HI_DOMESTIC) },
  2233.     { "wizard", S_HUMAN, 1, 10, 10, 3, 0, G_NOGEN,
  2234.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2235.         NO_ATTK, NO_ATTK, NO_ATTK },
  2236.       WT_HUMAN, 400, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
  2237.       M1_HUMANOID | M1_OMNIVORE,
  2238.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_COLLECT | M2_MAGIC,
  2239.       0, C(HI_DOMESTIC) },
  2240. #ifdef MULDGN
  2241.     { "Lord Carnarvon", S_HUMAN, 20, 12, 0, 30, 20, (G_NOGEN | G_UNIQ),
  2242.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2243.         NO_ATTK, NO_ATTK, NO_ATTK },
  2244.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2245.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  2246.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2247.       M2_COLLECT | M2_MAGIC,
  2248.       M3_CLOSE, C(HI_LORD) },
  2249.     { "Pelias", S_HUMAN, 20, 12, 0, 30, 0, (G_NOGEN | G_UNIQ),
  2250.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2251.         NO_ATTK, NO_ATTK, NO_ATTK },
  2252.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, MR_POISON, MR_POISON,
  2253.       M1_HUMANOID | M1_OMNIVORE,
  2254.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2255.       M2_COLLECT | M2_MAGIC,
  2256.       M3_CLOSE, C(HI_LORD) },
  2257.     { "Shaman Karnov", S_HUMAN, 20, 12, 0, 30, 20, (G_NOGEN | G_UNIQ),
  2258.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2259.         NO_ATTK, NO_ATTK, NO_ATTK },
  2260.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2261.       M1_HUMANOID | M1_OMNIVORE,
  2262.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2263.       M2_COLLECT | M2_MAGIC,
  2264.       M3_CLOSE, C(HI_LORD) },
  2265.     /* Two for elves - one of each sex. */
  2266.     { "Earendil", S_HUMAN, 20, 15, 0, 50, -20, (G_NOGEN | G_UNIQ),
  2267.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2268.         NO_ATTK, NO_ATTK, NO_ATTK },
  2269.       WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2270.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  2271.       M2_NOPOLY | M2_ELF | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG |
  2272.       M2_MALE | M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2273.     { "Elwing", S_HUMAN, 20, 15, 0, 50, -20, (G_NOGEN | G_UNIQ),
  2274.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2275.         NO_ATTK, NO_ATTK, NO_ATTK },
  2276.       WT_ELF, 350, 0, MS_LEADER, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2277.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  2278.       M2_NOPOLY | M2_ELF | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG |
  2279.       M2_FEMALE | M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2280.     { "Hippocrates", S_HUMAN, 20, 12, 0, 40, 0, (G_NOGEN | G_UNIQ),
  2281.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2282.         NO_ATTK, NO_ATTK, NO_ATTK },
  2283.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, MR_POISON, MR_POISON,
  2284.       M1_HUMANOID | M1_OMNIVORE,
  2285.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2286.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2287.     { "King Arthur", S_HUMAN, 20, 12, 0, 40, 20, (G_NOGEN | G_UNIQ),
  2288.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2289.         NO_ATTK, NO_ATTK, NO_ATTK },
  2290.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2291.       M1_HUMANOID | M1_OMNIVORE,
  2292.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2293.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2294.     { "Arch Priest", S_HUMAN, 25, 15, MARM(7,-3), 70, 0,
  2295.        (G_NOGEN | G_UNIQ),
  2296.       { { AT_WEAP, AD_PHYS, 4, 10 }, { AT_KICK, AD_PHYS, 2, 8 },
  2297.         { AT_MAGC, AD_CLRC, 2, 8 }, { AT_MAGC, AD_CLRC, 2, 8 },
  2298.         NO_ATTK, NO_ATTK },
  2299.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN,
  2300.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  2301.       MR_FIRE | MR_ELEC | MR_SLEEP | MR_POISON,
  2302.       M1_HUMANOID | M1_SEE_INVIS | M1_OMNIVORE,
  2303.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_NASTY |
  2304.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(WHITE) },
  2305.     { "Master of Thieves", S_HUMAN, 20, 15, 0, 30, -20, (G_NOGEN | G_UNIQ),
  2306.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK,
  2307.         NO_ATTK, NO_ATTK, NO_ATTK },
  2308.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2309.       M1_HUMANOID | M1_OMNIVORE,
  2310.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2311.       M2_GREEDY | M2_JEWELS | M2_COLLECT | M2_MAGIC,
  2312.       M3_CLOSE, C(HI_LORD) },
  2313.     { "Lord Sato", S_HUMAN, 20, 0, 0, 30, 20, (G_NOGEN | G_UNIQ),
  2314.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2315.         NO_ATTK, NO_ATTK, NO_ATTK },
  2316.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2317.       M1_HUMANOID | M1_OMNIVORE,
  2318.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2319.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2320. #ifdef TOURIST
  2321.     { "Twoflower", S_HUMAN, 20, 10, 10, 20, 0, (G_NOGEN | G_UNIQ),
  2322.       { {AT_WEAP, AD_PHYS, 1, 6}, NO_ATTK, NO_ATTK,
  2323.         NO_ATTK, NO_ATTK, NO_ATTK },
  2324.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2325.       M1_HUMANOID | M1_OMNIVORE,
  2326.       M2_NOPOLY | M2_HUMAN | M2_PNAME | M2_PEACEFUL | M2_STRONG | M2_MALE |
  2327.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_DOMESTIC) },
  2328. #endif
  2329.     { "Norn", S_HUMAN, 20, 15, 0, 80, 0, (G_NOGEN | G_UNIQ),
  2330.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2331.         NO_ATTK, NO_ATTK, NO_ATTK },
  2332.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, MR_COLD, MR_COLD,
  2333.       M1_HUMANOID | M1_OMNIVORE,
  2334.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_FEMALE |
  2335.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2336.     { "Wizard of Balance", S_HUMAN, 20, 12, 0, 60, 0, (G_NOGEN | G_UNIQ),
  2337.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2338.         NO_ATTK, NO_ATTK, NO_ATTK },
  2339.       WT_HUMAN, 400, 0, MS_LEADER, MZ_HUMAN, 0, 0,
  2340.       M1_HUMANOID | M1_OMNIVORE,
  2341.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2342.       M2_COLLECT | M2_MAGIC, M3_CLOSE, C(HI_LORD) },
  2343.  
  2344.     /* The nemesis monsters */
  2345.  
  2346.     { "Minion of Huhetol", S_DEMON, 16, 10, -2, 75, -14,
  2347.       (G_NOCORPSE | G_NOGEN | G_UNIQ),
  2348.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  2349.         { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2350.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE, MR_FIRE | MR_POISON, 0,
  2351.       M1_FLY | M1_SEE_INVIS | M1_POIS,
  2352.       M2_NOPOLY | M2_DEMON | M2_STALK | M2_HOSTILE | M2_STRONG | M2_NASTY |
  2353.       M2_COLLECT, M3_WANTSARTI | M3_WAITFORU, C(RED) },
  2354.     { "Thoth Amon", S_HUMAN, 16, 10, 0, 10, -14, (G_NOGEN | G_UNIQ),
  2355.       { { AT_MAGC, AD_SPEL, 0, 0 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2356.         { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2357.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, MR_POISON, MR_POISON,
  2358.       M1_HUMANOID | M1_OMNIVORE,
  2359.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_STALK | M2_HOSTILE | M2_NASTY |
  2360.       M2_COLLECT | M2_MAGIC, M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2361.     { "Chromatic Dragon", S_DRAGON, 16, 10, 0, 30, -14, (G_NOGEN | G_UNIQ),
  2362.       { { AT_BREA, AD_RBRE, 6, 8 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2363.         { AT_BITE, AD_PHYS, 4, 8 }, { AT_BITE, AD_PHYS, 4, 8 },
  2364.         { AT_BITE, AD_PHYS, 4, 8 }, { AT_STNG, AD_PHYS, 1, 6 } },
  2365.       WT_DRAGON, 1700, 0, MS_NEMESIS, MZ_GIGANTIC,
  2366.       MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_POISON,
  2367.       MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_POISON,
  2368.       M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS | M1_POIS,
  2369.       M2_NOPOLY | M2_HOSTILE | M2_FEMALE | M2_PNAME | M2_STALK |
  2370.       M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
  2371.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2372.     { "Goblin King", S_ORC, 15, 10, MARM(10,4), 0, -15, (G_NOGEN | G_UNIQ),
  2373.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 },
  2374.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2375.       750, 350, 0, MS_NEMESIS, MZ_HUMAN, 0, 0, M1_HUMANOID | M1_OMNIVORE,
  2376.       M2_NOPOLY | M2_ORC | M2_HOSTILE | M2_STRONG | M2_STALK | M2_NASTY |
  2377.       M2_MALE | M2_GREEDY | M2_JEWELS | M2_COLLECT | M2_MAGIC,
  2378.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2379.     { "Cyclops", S_GIANT, 18, 10, 0, 0, -15, (G_NOGEN | G_UNIQ),
  2380.       { { AT_WEAP, AD_PHYS, 4, 8 }, { AT_WEAP, AD_PHYS, 4, 8 },
  2381.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2382.       1900, 700, 0, MS_NEMESIS, MZ_HUGE, 0, 0,
  2383.       M1_HUMANOID | M1_OMNIVORE,
  2384.       M2_NOPOLY | M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_STALK |
  2385.       M2_HOSTILE | M2_NASTY | M2_MALE | M2_JEWELS | M2_COLLECT,
  2386.       M3_WANTSARTI | M3_WAITFORU, C(GRAY) },
  2387.     { "Ixoth", S_DRAGON, 15, 9, -1, 20, -14, (G_NOGEN | G_UNIQ),
  2388.       { { AT_BREA, AD_FIRE, 8, 6 }, { AT_BITE, AD_PHYS, 4, 8 },
  2389.         { AT_MAGC, AD_SPEL, 0, 0 }, { AT_CLAW, AD_PHYS, 2, 4 },
  2390.         { AT_CLAW, AD_PHYS, 2, 4 }, NO_ATTK  },
  2391.       WT_DRAGON, 1600, 0, MS_NEMESIS, MZ_GIGANTIC, MR_FIRE, MR_FIRE,
  2392.       M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS,
  2393.       M2_NOPOLY | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY | M2_STALK |
  2394.       M2_GREEDY | M2_JEWELS | M2_MAGIC,
  2395.       M3_WANTSARTI | M3_WAITFORU, C(RED) },
  2396.     { "Nalzok", S_DEMON, 16, 10, -2, 85, -127,
  2397.       (G_NOGEN | G_UNIQ | G_NOCORPSE),
  2398.       { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 },
  2399.         { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2400.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_LARGE, MR_FIRE | MR_POISON, 0,
  2401.       M1_FLY | M1_SEE_INVIS | M1_POIS,
  2402.       M2_NOPOLY | M2_DEMON | M2_PNAME | M2_HOSTILE | M2_STRONG | M2_STALK |
  2403.       M2_NASTY | M2_COLLECT, M3_WANTSARTI | M3_WAITFORU, C(RED) },
  2404.     { "Master Assassin", S_HUMAN, 15, 15, 0, 30, 18, (G_NOGEN | G_UNIQ),
  2405.       { { AT_WEAP, AD_DRST, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 8 }, NO_ATTK,
  2406.         NO_ATTK, NO_ATTK, NO_ATTK },
  2407.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, 0, 0,
  2408.       M1_HUMANOID | M1_OMNIVORE,
  2409.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_HOSTILE | M2_STALK | M2_NASTY |
  2410.       M2_COLLECT | M2_MAGIC,
  2411.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2412.     /* A renegade daimyo who led a 13 year civil war against the shogun */
  2413.     /* of his time. */
  2414.     { "Ashikaga Takauji", S_HUMAN, 15, 15, 0, 40, -13, (G_NOGEN | G_UNIQ),
  2415.       { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK,
  2416.         NO_ATTK, NO_ATTK, NO_ATTK },
  2417.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, 0, 0,
  2418.       M1_HUMANOID | M1_OMNIVORE,
  2419.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_PNAME | M2_HOSTILE | M2_STALK |
  2420.       M2_NASTY | M2_MALE | M2_COLLECT | M2_MAGIC,
  2421.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2422.  
  2423. /*    NOTE: the Master of Thieves was defined above. */
  2424.  
  2425.     { "Lord Surtur", S_GIANT, 15, 12, 2, 50, 12, (G_NOGEN | G_UNIQ),
  2426.       { { AT_WEAP, AD_PHYS, 2, 10 }, { AT_WEAP, AD_PHYS, 2, 10 }, NO_ATTK,
  2427.         NO_ATTK, NO_ATTK, NO_ATTK },
  2428.       2250, 850, 0, MS_NEMESIS, MZ_HUGE, MR_FIRE, MR_FIRE,
  2429.       M1_HUMANOID | M1_OMNIVORE,
  2430.       M2_NOPOLY | M2_GIANT | M2_STRONG | M2_ROCKTHROW | M2_STALK |
  2431.       M2_HOSTILE | M2_NASTY | M2_MALE | M2_PNAME | M2_COLLECT | M2_JEWELS,
  2432.       M3_WANTSARTI | M3_WAITFORU, C(HI_LORD) },
  2433.     { "Dark One", S_HUMAN, 15, 10, 0, 80, -10, (G_NOGEN | G_UNIQ),
  2434.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2435.         { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
  2436.       WT_HUMAN, 400, 0, MS_NEMESIS, MZ_HUMAN, 0, 0,
  2437.       M1_HUMANOID | M1_OMNIVORE,
  2438.       M2_NOPOLY | M2_HUMAN | M2_STRONG | M2_HOSTILE | M2_STALK | M2_NASTY |
  2439.       M2_COLLECT | M2_MAGIC,
  2440.       M3_WANTSARTI | M3_WAITFORU, C(BLACK) },
  2441.  
  2442. /*    The "guards" */
  2443.     { "student", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2444.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2445.         NO_ATTK, NO_ATTK, NO_ATTK },
  2446.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2447.       M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
  2448.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2449.       0, C(HI_DOMESTIC) },
  2450.     { "chieftain", S_HUMAN, 5, 10, 10, 10, 0, G_NOGEN,
  2451.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2452.         NO_ATTK, NO_ATTK, NO_ATTK },
  2453.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, MR_POISON, MR_POISON,
  2454.       M1_HUMANOID | M1_OMNIVORE,
  2455.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2456.       0, C(HI_DOMESTIC) },
  2457.     { "neanderthal", S_HUMAN, 5, 10, 10, 10, 1, G_NOGEN,
  2458.       { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
  2459.         NO_ATTK, NO_ATTK, NO_ATTK },
  2460.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2461.       M1_HUMANOID | M1_OMNIVORE,
  2462.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2463.       0, C(HI_DOMESTIC) },
  2464.     { "High-elf", S_HUMAN, 5, 12, MARM(10,5), 10, -7, G_NOGEN,
  2465.       { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_MAGC, AD_CLRC, 0, 0 },
  2466.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2467.       WT_ELF, 350, 0, MS_GUARDIAN, MZ_HUMAN, MR_SLEEP, MR_SLEEP,
  2468.       M1_HUMANOID | M1_OMNIVORE,
  2469.       M2_NOPOLY | M2_ELF | M2_PEACEFUL | M2_COLLECT, 0, C(HI_DOMESTIC) },
  2470.     { "intern", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2471.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2472.         NO_ATTK, NO_ATTK, NO_ATTK },
  2473.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, MR_POISON, MR_POISON,
  2474.       M1_HUMANOID | M1_OMNIVORE,
  2475.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2476.       0, C(HI_DOMESTIC) },
  2477.     { "page", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2478.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2479.         NO_ATTK, NO_ATTK, NO_ATTK },
  2480.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2481.       M1_HUMANOID | M1_OMNIVORE,
  2482.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2483.       0, C(HI_DOMESTIC) },
  2484.     { "acolyte", S_HUMAN, 5, 10, 10, 20, 0, G_NOGEN,
  2485.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_CLRC, 0, 0 },
  2486.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2487.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2488.       M1_HUMANOID | M1_OMNIVORE,
  2489.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2490.       0, C(HI_DOMESTIC) },
  2491.     { "thug", S_HUMAN, 5, 10, 10, 10, -3, G_NOGEN,
  2492.       { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
  2493.         NO_ATTK, NO_ATTK, NO_ATTK },
  2494.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2495.       M1_HUMANOID | M1_OMNIVORE,
  2496.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2497.       M2_GREEDY | M2_COLLECT,
  2498.       0, C(HI_DOMESTIC) },
  2499.     { "ninja", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2500.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2501.         NO_ATTK, NO_ATTK, NO_ATTK },
  2502.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2503.       M1_HUMANOID | M1_OMNIVORE,
  2504.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2505.       0, C(HI_DOMESTIC) },
  2506.     { "ronin", S_HUMAN, 5, 10, 10, 10, 3, G_NOGEN,
  2507.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2508.         NO_ATTK, NO_ATTK, NO_ATTK },
  2509.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2510.       M1_HUMANOID | M1_OMNIVORE,
  2511.       M2_NOPOLY | M2_HUMAN | M2_HOSTILE | M2_STRONG | M2_COLLECT,
  2512.       0, C(HI_DOMESTIC) },
  2513. #ifdef TOURIST
  2514.     { "guide", S_HUMAN, 5, 10, 10, 20, 0, G_NOGEN,
  2515.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2516.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2517.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2518.       M1_HUMANOID | M1_OMNIVORE,
  2519.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2520.       M2_COLLECT | M2_MAGIC, 0, C(HI_DOMESTIC) },
  2521. #endif
  2522.     { "warrior", S_HUMAN, 5, 10, 10, 10, -1, G_NOGEN,
  2523.       { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
  2524.         NO_ATTK, NO_ATTK, NO_ATTK },
  2525.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2526.       M1_HUMANOID | M1_OMNIVORE,
  2527.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG | M2_COLLECT,
  2528.       0, C(HI_DOMESTIC) },
  2529.     { "apprentice", S_HUMAN, 5, 10, 10, 30, 0, G_NOGEN,
  2530.       { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_SPEL, 0, 0 },
  2531.         NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2532.       WT_HUMAN, 400, 0, MS_GUARDIAN, MZ_HUMAN, 0, 0,
  2533.       M1_HUMANOID | M1_OMNIVORE,
  2534.       M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
  2535.       M2_COLLECT | M2_MAGIC, 0, C(HI_DOMESTIC) },
  2536. #endif /* MULDGN /* */
  2537. /*    ARRAY TERMINATOR    */
  2538.     { "", 0, 0, 0, 0, 0, 0, 0,
  2539.       { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
  2540.       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, C(0) }
  2541. };
  2542. #endif /* !SPLITMON_1 */
  2543.  
  2544. #ifndef SPLITMON_1
  2545. /* dummy routine used to force linkage */
  2546. void
  2547. monst_init()
  2548. {
  2549.     return;
  2550. }
  2551. #endif
  2552.  
  2553. /*monst.c*/
  2554.